1、docker下载镜像

docker pull  certbot/certbot

2、certbot 启动配置

docker run -it --rm --name certbot \
	-v "/root/docker/certbot/ssl/:/etc/letsencrypt/" \
	-v "/root/docker/nginx/www/:/var/www/html/" \
                -v "/root/docker/certbot/letsencrypt/:/var/lib/letsencrypt" \
	-v "/root/docker/certbot/log/:/var/log/letsencrypt" \
	certbot/certbot certonly -n --no-eff-email --email demo@demo.com   --agree-tos --webroot -w /var/www/html -d www.baidu.com

说明:

--rm                                                    执行完成后便删除实例

/root/docker/certbot/ssl/                     生成证书等信息位置
/root/docker/nginx/www/                    nginx的根页面地址  (这个位置 配置很重要,webroot 会请                                                              求这个位置)
/root/docker/certbot/letsencrypt/       certbot执行生成的信息
/root/docker/certbot/log/                    certbot执行生成的日志

 --email demo@demo.com               配置自己的真实邮箱地址

--webroot -w /var/www/html              指向对应nginx的根页面地址

-d www.baidu.com                             域名,多个域名可以多次写这个配置

3、执行生成后,证书在配置位置的live里

4、可能存在的问题:

原因:

域名下的 /.well-known/acme-challenge/NHz9-CH4W0RkSC2rH1BORGtdEdk9-43JM3dXiWd_U_o 这个路径,Let's Encrypt 服务器访问不到,所以需要配置一下 nginx/conf/nginx.conf 文件

在 nginx 的 nginx.conf 文件中写入以下配置

server { 
listen 80; 
server_name www.ok.com; 
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain"; 
root   /www;
} 
location = /.well-known/acme-challenge/ {
 return 404; 
} 
}


 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐