作免費的https證書

轉:  https://www.qikqiak.com/post/make-https-blog/html

誰都不肯意在使用網站服務的時候,被噁心的運營商劫持加上一些他們的服務(真的很賤,不是嗎?),不過這能難道咱們程序員嗎?固然不能,上https,老子全站https,你再劫持給我看看。nginx

https證書服務大部分都是收費的,並且很貴,阿里雲能夠申請一個免費的證書,只能綁定一個域名,這裏咱們使用更加友好的免費https服務:Let’s Encrypt程序員

 

Let’s Encrypt 簡介

若是要啓用HTTPS,咱們就須要從證書受權機構(如下簡稱CA) 處獲取一個證書,Let's Encrypt 就是一個 CA。咱們能夠從Let's Encrypt 得到網站域名的免費的證書。這篇文章也主要講的是經過 Let's Encrypt + Nginx 來讓網站升級到HTTPSweb

獲取證書

Certbot是Let's Encrypt官方推薦的獲取證書的客戶端,能夠幫咱們獲取免費的Let's Encrypt 證書。安裝命令:shell

yum install certbot 

生成證書:bash

certbot certonly --email icnych@gmail.com --agree-tos --webroot -w /var/www/blogs -d blog.qikqiak.com 

其中-w後面是網站根目錄,-d後面是網站域名,因此須要保證目錄存在而且能夠正常訪問。app

執行完生成證書的命令後,會生成相關的證書文件到/etc/letsencrypt/live/blog.qikqiak.com/目錄下面:post

$ ls /etc/letsencrypt/live/blog.qikqiak.com/ cert.pem chain.pem fullchain.pem privkey.pem README 

至此證書生成完成。網站

Nginx 配置https

證書生成完成後,還須要更改咱們的Nginx配置服務,主要是監聽443端口,啓用SSL,並配置SSL的證書路徑(公鑰,私鑰的路徑)。以下:ui

server { listen 443; ssl on; ssl_certificate /etc/letsencrypt/live/blog.qikqiak.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/blog.qikqiak.com/privkey.pem; server_name blog.qikqiak.com; root /home/notes/apps/blog; index index.html; } 

配置更改事後從新加載Nginx便可生效:

nginx -s reload 

如今咱們訪問https://blog.qikqiak.com已經能夠正常訪問了,可是還有一個問題就是訪問http://blog.qikqiak.com依然仍是http的,因此咱們須要配置將http更改成https,這樣就完美了。這裏能夠用到以前咱們的301跳轉來解決這個問題,完整的配置以下:

server { listen 80; server_name blog.qikqiak.com; rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443; ssl on; ssl_certificate /etc/letsencrypt/live/blog.qikqiak.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/blog.qikqiak.com/privkey.pem; server_name blog.qikqiak.com; root /home/notes/apps/blog; index index.html; } 

更新證書

到這裏咱們已經將博客https化了,可是尚未完的,因爲Let's Encrypt證書的有效期只有90天,因此在到期以前咱們須要更新整數,certbot給咱們已經提供了這樣的更新命令,咱們只須要將更新命令添加到crontab下面按期更新便可:

$ crontab -l 30 5 1 * * root /usr/bin/certbot renew --renew-hook "/usr/sbin/nginx -s reload" 

到這一步纔算革命成功了~~~ 咱們不再用擔憂噁心的害蟲了~~~

「真誠讚揚,手留餘香」

相關文章
相關標籤/搜索