作免费的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" 

到这一步才算革命成功了~~~ 咱们不再用担忧恶心的害虫了~~~

「真诚赞扬,手留余香」

相关文章
相关标签/搜索