Yerel geliştirme ortamında SSL

HTTPS tabanlı tarayıcıların, SameSite çerezlerinin ve gerçekçi geliştirme koşullarının olduğu bir çağda, gerçek SSL sertifikalarıyla yerel olarak çalışmak önemlidir. Let's Encrypt bu konuda öncü bir çalışma yaptı; certbot ve Cloudflare'in yardımıyla, joker sertifikalar oluşturmak ve yenilemek hızlı ve kolay. Bu, web projelerinize yerel ağdaki herhangi bir cihazdan (akıllı telefon, VM, ...) veya VPN aracılığıyla şifrelenmiş bir şekilde erişmenizi sağlar.


Örneğin, öncelikle Cloudflare'de bir geliştirici alan adı kaydediyoruz vielhuber.dev:

Şimdi bu etki alanının kendi yerel IP adresini göstermesine izin veriyoruz (örneğin 192.168.0.2) göstermek. Bunu yapmak için aşağıdaki DNS A kayıtlarını oluşturun (önemli: Proxy durumu şu şekilde ayarlanmalıdır: gri/sadece DNS (ayarlanmak):

TipIsimİçindekiler
A@192.168.0.2
A*192.168.0.2

Joker sertifikaların geçerliliğini doğrulamak için TXT kayıtlarının otomatik olarak ayarlanması gerekmektedir. Bunu yapmak için şimdi bir API belirteci oluşturuyoruz (Profil > API Belirteçleri > Belirteç Oluştur > Şablon: Bölge DNS'ini düzenle) ve etki alanını seçiyoruz:

Son olarak certbot'u kurduk:

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

Şimdi daha önce oluşturulan API token'ını yatırıyoruz:

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

Son olarak bir sertifika istiyoruz:

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

Otomatik yenileme de hızlı bir şekilde kurulur. Certbot'un her 12 saatte bir rastgele bir zamanda otomatik olarak çalışmasını önlemek için, önce standart betiği devre dışı bırakıyoruz ve kendi betiğimizi ekliyoruz:

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

İhtiyacınız olan tek şey bu: Apache'ye entegre olmak için, projelerinizdeki Apache yapılandırmasında az önce oluşturduğunuz sertifikalara başvurmanız gerekiyor (örn. /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

Apache yeniden başlatıldıktan sonra (sudo systemctl reload apache2) sertifikalar artık aktiftir ve projelerinize erişebilirsiniz https://project-xy.vielhuber.dev.

Başlangıçta biraz çaba sarf ederek, yalnızca gerçekçi olmakla kalmayıp aynı zamanda modern tarayıcılar, API'ler ve cihazlarla sorunsuz bir şekilde çalışan gerçek joker sertifikalara sahip yerel bir geliştirme ortamı oluşturabilirsiniz. DNS-01 doğrulaması sayesinde, herkese açık bir sunucuya veya manuel sertifika isteklerine ihtiyacınız yok; her şey otomatik, güvenli ve güvenilirdir.

Geri