SSL dalam lingkungan pengembangan lokal

Di masa browser hanya HTTPS, cookie SameSite, dan kondisi pengembangan yang realistis, penting untuk bekerja secara lokal dengan sertifikat SSL asli. Let's Encrypt telah melakukan pekerjaan perintis di sini – dengan bantuan certbot dan Cloudflare , pembuatan dan pembaruan sertifikat wildcard menjadi cepat dan mudah. Hal ini memungkinkan Anda untuk mengakses proyek web Anda yang dienkripsi pada perangkat apa pun (ponsel pintar, VM, ...) di jaringan lokal atau melalui VPN.


Pertama kita daftarkan domain developer di Cloudflare misalnya vielhuber.dev:

Sekarang kita biarkan domain ini menunjuk ke alamat IP lokalnya sendiri (misalnya 192.168.0.2) menunjukkan. Untuk melakukan ini, buat catatan DNS A berikut (penting: Status proxy harus ditetapkan ke abu-abu/hanya DNS (diatur):

JenisNamaIsi
A@192.168.0.2
A*192.168.0.2

Untuk memvalidasi sertifikat wildcard, perlu untuk mengatur rekaman TXT secara otomatis. Untuk melakukan ini, sekarang kita membuat token API (Profil > Token API > Buat Token > Template: Edit zona DNS) dan pilih domain:

Akhirnya, kami menyiapkan certbot:

sudo apt install certbot python3-certbot-dns-cloudflare
pip install --upgrade pyOpenSSL cryptography certbot certbot-dns-cloudflare

Sekarang kita simpan token API yang dihasilkan sebelumnya:

mkdir -p ~/.secrets/certbot
nano ~/.secrets/certbot/cloudflare.ini
dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN_WITH_EDIT_ZONE_DNS_PERMISSIONS
chmod 600 ~/.secrets/certbot/cloudflare.ini

Terakhir, kami meminta sertifikat:

certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
  --dns-cloudflare-propagation-seconds 60 \
  -d '*.vielhuber.dev' -d vielhuber.dev \
  --agree-tos \
  --email david@vielhuber.de \
  --non-interactive

Perpanjangan otomatis juga diatur dengan cepat. Untuk mencegah certbot berjalan secara otomatis setiap 12 jam dengan waktu acak, pertama-tama kita nonaktifkan skrip standar dan tambahkan skrip kita sendiri:

sudo mv /etc/cron.d/certbot /etc/cron.d/certbot.disabled
( crontab -l 2>/dev/null; echo "0 12 * * * certbot renew --quiet" ) | crontab -
certbot renew --dry-run

Hanya ini yang dibutuhkan: Untuk berintegrasi ke Apache, Anda merujuk ke sertifikat yang baru saja Anda buat dalam konfigurasi Apache di proyek Anda (misalnya /etc/apache2/sites-available/project-xy.conf):

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/vielhuber.dev/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/vielhuber.dev/privkey.pem

Setelah Apache direstart (sudo systemctl reload apache2) sertifikatnya sudah aktif dan Anda dapat mengakses proyek Anda dengan https://project-xy.vielhuber.dev.

Dengan sedikit usaha awal, Anda dapat membangun lingkungan pengembangan lokal dengan sertifikat wildcard nyata yang tidak hanya realistis tetapi juga bekerja mulus dengan browser, API, dan perangkat modern. Berkat verifikasi DNS-01, Anda tidak memerlukan server yang dapat diakses publik atau permintaan sertifikat manual – semuanya otomatis, aman, dan andal.

Kembali