ubuntu+let's encrypt生成永久免費https證書 ubuntu+tomcat+nginx+let's encrypt

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 #重啓定時任務,讓任務生效
相關文章
相關標籤/搜索