Docker 内部署的 Nginx,融合免费的SSL Let’s Encrypt 部署 HTTPS,自动升级证书有效期,给你浏览器地址栏加个绿色的锁,让你的网站更加安全。
Docker
镜像系统
docker pull certbot
配备
注:改动 nginx 配备,在 server 控制模块下新增加以上配备,留意途径变动,且该途径为 docker 中的途径。
location ^~ /.well-known/acme-challenge/ { default_type \"text/plain\"; root /www/makeit;}location = /.well-known/acme-challenge/ { return 404;}
运作
注:这儿选用 webroot 验证方式,–webroot -w 所的配置主要参数为 docker 中的文件目录。
docker run -it --rm --name certbot -v /makeit/docker/nginx/letsencrypt:/etc/letsencrypt -v /var/lib/letsencrypt:/var/lib/letsencrypt -v /makeit/web/home:/www/makeit certbot/certbot certonly --webroot -w /www/makeit --email makeit@makeit.vip -d www.makeit.vip
取得成功形成证书的提醒
有效期限
# 可以根据如下所示指令查询资格证书合理时间# -in 后边为刚产生时存放的资格证书途径openssl x509 -noout -dates -in /makeit/docker/nginx/letsencrypt/live/www.makeit.vip/cert.pem
自动升级
新创建脚本制作
touch renew.sh
脚本制作具体内容
#!/bin/bashdocker run -it --rm --name certbot -v /makeit/docker/nginx/letsencrypt:/etc/letsencrypt -v /var/lib/letsencrypt:/var/lib/letsencrypt -v /makeit/web/home:/www/home certbot/certbot certonly --webroot -w /www/home --force-renew --email makeit@makeit.vip -d www.makeit.vipdocker kill nginxdocker start nginx
修改权限
chmod x /makeit/docker/nginx/renew.sh
计划任务(每月1号实行1次脚本制作)
crontab -e0 0 1 * * /makeit/docker/nginx/renew.sh
PFS键值
PFS(perfect forward secrecy),汉语可称为彻底前向信息保密。规定一个密匙只有浏览由它所维护的信息;用于造成密匙的元素一次一换,不会再造成其它的密匙;一个密匙被破译,并不影响别的密匙的安全性
mkdir /makeit/docker/nginx/ssl/private -pcd /makeit/docker/nginx/ssl/privateopenssl dhparam 2048 -out dhparam.pem
NGINX
配备实例
server { listen 80; listen 443 ssl; server_name makeit.vip www.makeit.vip; root /www/makeit; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn; ssl_certificate letsencrypt/live/www.makeit.vip/fullchain.pem; ssl_certificate_key letsencrypt/live/www.makeit.vip/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_prefer_server_ciphers on; ssl_session_timeout 5m; ssl_session_tickets on; ssl_dhparam ssl/private/dhparam.pem; location / { index index.html index.htm index.php index.jsp; } error_page 500 502 503 504 /50x.html; location /50x.html { root /www; } location ~ /. { return 403; } location ~* ^. .(jpg|jpeg|gif|png|bmp|css|js|swf)$ { access_log off; } location ~ .php$ { root /www/makeit; fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_split_path_info ^(. .php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.ht { deny all; }}
NGINX
注:后3个 -v 投射的文件目录,请都投射在 nginx 容器的根目录下。
docker run --name nginx -d -p 80:80 -p 443:443 --restart=always -v /makeit/web:/www -v /makeit/logs/nginx:/var/log/nginx -v /makeit/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -v /makeit/docker/nginx/conf.d:/etc/nginx/conf.d -v /makeit/docker/nginx/letsencrypt:/etc/nginx/letsencrypt -v /makeit/docker/nginx/ssl:/etc/nginx/ssl --link php nginx
查询实际效果
资格证书起效
资格证书早已起效,电脑浏览器早已添加了“锁”标志,取得成功啦 ~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。