1. 下載let's encryptpython
$ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install certbot
2. 生成密鑰,調用以前須要中止nginxlinux
certbot certonly --standalone -d www.域名1.com -d www.域名2.com
生成成功,提示以下nginx
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/【這裏是你的域名文件夾路徑】/fullchain.pem. Your cert will expire on 【這裏是到期時間】. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
3. 配置nginxbash
server{ client_max_body_size 50m; server_name 【這裏是你的域名】; listen 443 ssl; ssl_certificate /etc/letsencrypt/live/【這裏是你的域名證書文件夾名】/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/【這裏是你的域名證書文件夾名】/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; listen [::]:443 ssl ipv6only=on; location ^~ /xxx { proxy_connect_timeout 500s; proxy_read_timeout 500s; proxy_send_timeout 500s; proxy_pass http://127.0.0.1:8080/xxx/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
4. 重啓nginxide
nginx -s reload
5. 重定向http訪問到httpsui
server { listen 80; server_name 【這裏是你的域名】; rewrite ^(.*) https://$server_name$1 permanent; }
6.強制刷新續約this
#先中止nginx 一、service nginx stop #強制刷新證書續約、由於此證書只有90天有效期,須要在到期前執行續約 二、certbot renew --force-renew #出現提示中包含這句,就說明已經成功了 Congratulations, all renewals succeeded. The following certs have been renewed: #啓動nginx 三、service nginx start
也能夠一步到位執行:spa
certbot renew --quiet --renew-hook "/etc/init.d/nginx reload":不打印日誌,日誌查看/var/log/letsencrypt/letsencrypt.logrest
certbot renew --renew-hook "/etc/init.d/nginx reload" :控制檯打印日誌日誌
七、自動續約、能夠利用linux自帶的cron來定時執行刷新腳本,這樣這個證書就是永久有效的了
crontab -e #編輯crontab列表 #天天的23點59分執行 59 23 * * * certbot renew --quiet --renew-hook "/etc/init.d/nginx reload" crontab -l #查看crontab列表 service cron restart #重啓定時任務,讓任務生效