https 的网站 Google 会优先收录,所以就抽时间记录下配置博客的过程。
使用 LetEncrypt 证书作为博客的 https 实现方式。
acme.sh?实现了?acme?协议, 可以从 letsencrypt 生成免费的证书.
github https://github.com/Neilpang/acme.sh
主要步骤:
安装很简单, 一个命令:
curl https://get.acme.sh | sh
普通用户和 root 用户都可以安装使用. 安装过程进行了以下几步:
cd ~/.acme.sh/
并创建 一个 bash 的 alias, 方便你的使用:?alias acme.sh=~/.acme.sh/acme.sh
2). 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.
acme.sh?实现了?acme?协议支持的所有验证协议. 一般有两种方式验证: http 和 dns 验证.
这是使用http 验证
cd ~/.acme.sh/
yum install socat
如果你还没有运行任何 web 服务,?80?端口是空闲的, 那么?acme.sh?还能假装自己是一个webserver, 临时听在80?端口, 完成验证:
sh acme.sh --issue -d www.souyunku.com --standalone
前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.
注意, 默认生成的证书都放在安装目录下:?~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.
mkdir -p /certs
cd /root/.acme.sh/www.souyunku.com
cp www.souyunku.com.cer /certs
cp www.souyunku.com.key /certs
配置Nginx
vim /usr/local/nginx/conf/nginx.conf
配置证书
server {
listen 443;
ssl on;
ssl_certificate /certs/www.souyunku.com.cer;
ssl_certificate_key /certs/www.souyunku.com.key;
}
把http重定向到https
server {
listen 80;
server_name www.souyunku.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
每次修改nginx配置文件后都要进行检查
/usr/local/nginx/sbin/nginx -t
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0
启动Nginx
/usr/local/nginx/sbin/nginx
浏览器 访问 www.souyunku.com 会自动跳转到 https://www.souyunku.com

最后说一点,由于博客使用了七牛云的 http 协议的 cdn 导致博客内的静态资源不可用,最后又把七牛云的静态资源配置了 https
配置步骤
点击菜单:融合CDN-->域名管理-->配置--> HTTPS 配置
点击?SSL证书管理 - https://portal.qiniu.com/certificate/ssl#cert,您可以在SSL证书服务页面申请或上传自有证书。
最后点击:强制 HTTPS 访问
开启后用户的 HTTP 请求会强制跳转到 HTTPS 协议进行访问。

原文:http://blog.51cto.com/8888940/2126601