本文主要是介绍Docker 容器中运行Certbot获取和管理 SSL 证书,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果你在 Docker 容器中运行 Nginx 并希望使用 Certbot 获取和管理 SSL 证书,可以使用 Certbot 的官方 Docker 镜像来完成这项工作。以下是使用 Docker 和 Certbot 获取 SSL 证书并配置 Nginx 的详细步骤:
1. 拉取 Certbot Docker 镜像
首先,确保你已经安装了 Docker。然后,拉取 Certbot 的官方 Docker 镜像:
docker pull certbot/certbot
2. 停止 Nginx 容器
在获取 SSL 证书时,Certbot 需要绑定 80 端口,因此需要暂时停止 Nginx 容器:
docker stop <nginx-container-name>
将 <nginx-container-name>
替换为你的 Nginx 容器名称。
3. 获取 SSL 证书
使用 Certbot Docker 容器获取 SSL 证书。以下命令将获取证书并存储在本地目录中(例如 /etc/letsencrypt
):
docker run -it --rm \-v /etc/letsencrypt:/etc/letsencrypt \-v /var/lib/letsencrypt:/var/lib/letsencrypt \-v /path/to/your/webroot:/var/www/html \certbot/certbot certonly --webroot \--webroot-path /var/www/html \--email your-email@example.com \--agree-tos \--no-eff-email \-d example.com -d www.example.com
请将以下内容替换为你的实际值:
/path/to/your/webroot
:替换为你的 Web 根目录路径。your-email@example.com
:替换为你的电子邮件地址。example.com
和www.example.com
:替换为你的域名。
4. 配置 Nginx 使用 SSL 证书
在 Nginx 配置文件中设置使用新获取的 SSL 证书。以下是一个示例配置:
server {listen 80;server_name example.com www.example.com;location /.well-known/acme-challenge/ {root /var/www/html;}location / {return 301 https://$host$request_uri;}
}server {listen 443 ssl;server_name example.com www.example.com;ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;location / {root /var/www/html;index index.html index.htm;}
}
将 example.com
替换为你的域名,并确保证书路径与实际路径一致。
5. 启动 Nginx 容器
在更新了 Nginx 配置后,重新启动 Nginx 容器:
docker start <nginx-container-name>
6. 设置自动续订
Certbot 的证书有效期为 90 天,需要设置自动续订。可以通过创建一个 cron job 来自动运行续订命令:
0 0,12 * * * docker run -it --rm \-v /etc/letsencrypt:/etc/letsencrypt \-v /var/lib/letsencrypt:/var/lib/letsencrypt \-v /path/to/your/webroot:/var/www/html \certbot/certbot renew --webroot --webroot-path /var/www/html --quiet
这行命令将每天两次检查和续订证书。
通过以上步骤,你可以使用 Docker 中的 Certbot 容器来获取和管理 SSL 证书,并在 Docker 中运行的 Nginx 服务器上配置 SSL。
这篇关于Docker 容器中运行Certbot获取和管理 SSL 证书的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!