09月28, 2016

启用HTTPS

每每看着浏览器里只有自己的网站没有SSL/TLS Certificates,就觉得比较难受,感觉进了什么落后网站。最近又从各种途径了解了一些安全的姿势,于是今天心血来潮上了一个,中间遇到一些坑,也该记录一下以飨后人。 前一阵子把blog从AWS迁移到了我在韩国的VPS上,因为已经自己手搭过一次LAMP,所以那次贪图省事直接用了XAMPP,并用XAMPP安装了Wordpress。这估计也是后面遇到一些坑的原因,因为毕竟不是自己配的Apache配置。 在SSL/TLS Certificates的选择上我没有过多了解,使用了身边人都在用的Let’s Encrypt,正如其官网所言
It’s free, automated, and open.
同样是贪图省事,我直接使用了certbot来生成密钥,过程没什么好说的(唯一不爽的就是它一键生成我就没法用我自己的密钥来签了),键入以下指令:
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto
./certbot-auto certonly
然后按照屏幕上的提示,首先它需要你验证是否拥有网站权限,我们选择(1) Place files in webroot directory (webroot) ,然后输入域名(domain),最后选择输入网站根目录(我的是$\wordpress\htdocs ),然后会有以下提示:
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/$yourdomain/fullchain.pem. Your cert will
   expire on 2016-**-**. 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"
这就说明密钥生成成功了,最新生成的密钥链接会放在/etc/letsencrypt/live/$yourdomain 这个目录里,只有root用户可以访问 生成的密钥一共有四个,分别是
privkey.pem
cert.pem
chain.pem
fullchain.pem
根据web服务器的不同,我们需要其中不同的密钥来进行下一步配置,而针对我个人的Apache2.4.23而言,需要配置/etc/extra/httpd-ssl.conf 中的这三行(具体目录省略)
DocumentRoot "$/wordpress/htdocs"
SSLCertificateFile "$/fullchain.pem"
SSLCertificateKeyFile "$/privkey.pem"
其他服务器的配置可以参考certbot官方文档,注意版本不同也有差异 然后设置wp-config.php
define('WP_SITEURL', 'https://sxing.xyz');
define('WP_HOME', 'https://sxing.xyz');
在网页端设置里设置也是可以的 由于 Let's Encrypt 的证书有效期只有90天,所以我们需要定期 renew 证书,写一个 shell script 会方便一些
#!/bin/bash
#强制更新证书
PATH/certbot-auto renew --force-renewal 
#重启 apache
/opt/lampp/lampp restartapache
也可以设置 crontab 定时任务,以免遗忘,在/etc/letsencrypt/achive/yourdomain 可以看到证书的各个版本迭代。 最后设置一下301转发,将http的访问都转发到https上就可以了,配置文件是/wordpress/conf/htaccess.conf ,在最顶部加上
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://sxing.xyz/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www.sxing.xyz$ [NC]
RewriteRule ^(.*)$ https://sxing.xyz/$1 [L,R=301]
就可以了
看着地址栏的绿色,还是比较爽的。

本文链接:https://sxing.xyz/post/启用https.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。