Server block TLS
Server block TLS
Section titled “Server block TLS”Perintah siap tempel untuk mengaktifkan HTTPS.
Berkas: alat/hari-3/Praktik 11/perbaikan/tls-aktifkan.conf.md
# =====================================================================# Praktik 11 bagian 3 - Tahap 10 yang diperbaiki## Perintah pada modul menulis berkas /opt/webgis/app/tls/aktifkan.conf# yang isinya HANYA tiga baris:## listen 443 ssl;# ssl_certificate /etc/letsencrypt/live/<subdomain>/fullchain.pem;# ssl_certificate_key /etc/letsencrypt/live/<subdomain>/privkey.pem;## Tiga baris itu bukan konfigurasi yang sah kalau diletakkan di dalam file# yang di-include dari nginx.conf pada level server. Yang dibutuhkan adalah# SELURUH server block untuk port 443. Berkas ini adalah isi yang benar.## Cara pakai di VM (menggantikan perintah printf pada Tahap 10):## SUBDOMAIN="nama01.gisbigtrainer.com"## gcloud compute ssh "$VM_NAME" --zone="$ZONE" --tunnel-through-iap \# --command="sudo tee /opt/webgis/app/tls/aktifkan.conf >/dev/null <<EOF# server {# listen 443 ssl;# http2 on;# server_name ${SUBDOMAIN};## ssl_certificate /etc/letsencrypt/live/${SUBDOMAIN}/fullchain.pem;# ssl_certificate_key /etc/letsencrypt/live/${SUBDOMAIN}/privkey.pem;# ssl_protocols TLSv1.2 TLSv1.3;# ssl_prefer_server_ciphers off;## location ^~ /.well-known/acme-challenge/ { root /var/www/certbot; }# location = / { return 302 /portal; }# location = /geoserver { return 302 /geoserver/web; }# location /geoserver/ {# resolver 127.0.0.11 valid=10s ipv6=off;# set \$geoserver_upstream http://geoserver:8080;# rewrite ^/geoserver/(.*)\$ /geoserver/\$1 break;# proxy_pass \$geoserver_upstream;# proxy_set_header Host \$http_host;# proxy_set_header X-Forwarded-Proto https;# }# location / {# resolver 127.0.0.11 valid=10s ipv6=off;# set \$nextjs_upstream http://nextjs:3000;# proxy_pass \$nextjs_upstream;# proxy_http_version 1.1;# proxy_set_header Host \$host;# proxy_set_header X-Forwarded-Proto https;# }# }# EOF# cd /opt/webgis/app && sudo docker compose exec -T nginx nginx -t && \# sudo docker compose exec -T nginx nginx -s reload"## Dua hal yang paling sering terlewat:## 1. Container tidak melihat /etc/letsencrypt. Tambahkan ke docker-compose.yml:# - /etc/letsencrypt:/etc/letsencrypt:ro# Tanpa itu, nginx -t gagal dengan# "cannot load certificate ... No such file or directory".## 2. Port 443 tidak dipublikasikan. Tambahkan pada service nginx:# - "443:443"# Tanpa itu Nginx mendengarkan di dalam container, tetapi host tidak# meneruskan trafik ke sana.# =====================================================================