Lewati ke konten

Server block TLS

Perintah siap tempel untuk mengaktifkan HTTPS.

Berkas: alat/hari-3/Praktik 11/perbaikan/tls-aktifkan.conf.md

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.
# =====================================================================