SSL trong môi trường phát triển cục bộ

Trong thời đại của trình duyệt chỉ sử dụng HTTPS, cookie SameSite và các điều kiện phát triển thực tế, điều quan trọng là phải làm việc cục bộ với chứng chỉ SSL thực. Let's Encrypt đã thực hiện công việc tiên phong ở đây – với sự trợ giúp của certbotCloudflare , việc tạo và gia hạn chứng chỉ đại diện trở nên nhanh chóng và dễ dàng. Tính năng này cho phép bạn truy cập các dự án web được mã hóa trên mọi thiết bị (điện thoại thông minh, VM, ...) trong mạng cục bộ hoặc qua VPN.


Đầu tiên, chúng tôi đăng ký tên miền nhà phát triển với Cloudflare, ví dụ vielhuber.dev:

Bây giờ chúng ta để tên miền này trỏ đến địa chỉ IP cục bộ của nó (ví dụ: 192.168.0.2) trình diễn. Để thực hiện việc này, hãy tạo các bản ghi DNS A sau (quan trọng: Trạng thái proxy phải được đặt thành xám/chỉ DNS được thiết lập):

KiểuTênNội dung
MỘT@192.168.0.2
MỘT*192.168.0.2

Để xác thực chứng chỉ đại diện, cần phải thiết lập bản ghi TXT tự động. Để thực hiện việc này, bây giờ chúng ta tạo một mã thông báo API (Hồ sơ > Mã thông báo API > Tạo mã thông báo > Mẫu: Chỉnh sửa vùng DNS) và chọn tên miền:

Cuối cùng, chúng tôi thiết lập certbot:

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

Bây giờ chúng ta gửi mã thông báo API đã tạo trước đó:

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

Cuối cùng, chúng tôi yêu cầu một giấy chứng nhận:

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

Tính năng gia hạn tự động cũng được thiết lập nhanh chóng. Để ngăn certbot chạy tự động sau mỗi 12 giờ với thời gian ngẫu nhiên, trước tiên chúng tôi hủy kích hoạt tập lệnh chuẩn và thêm tập lệnh của riêng chúng tôi:

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

Đây là tất cả những gì cần thiết: Để tích hợp vào Apache, bạn tham khảo các chứng chỉ vừa tạo trong cấu hình Apache trong các dự án của mình (ví dụ: /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

Sau khi khởi động lại Apache (sudo systemctl reload apache2) các chứng chỉ sau đó đã được kích hoạt và bạn có thể truy cập vào các dự án của mình bằng https://project-xy.vielhuber.dev.

Chỉ cần bỏ ra một chút nỗ lực ban đầu, bạn có thể xây dựng một môi trường phát triển cục bộ với các chứng chỉ đại diện thực sự không chỉ thực tế mà còn hoạt động liền mạch với các trình duyệt, API và thiết bị hiện đại. Nhờ xác minh DNS-01, bạn không cần máy chủ có thể truy cập công khai hoặc yêu cầu cấp chứng chỉ thủ công – mọi thứ đều tự động, an toàn và đáng tin cậy.

Trở lại