0x0、闲话
首先我觉得对于小型网站完全没有必要上HTTPS。HTTPS的维护要比HTTP麻烦,而且对资源的开销要比HTTP大。而且证书是有有效期而并非永久有效的。但是!!!
被运营商劫持了首页,修改js挂了广告,如此****的行为让我忍无可忍。下面说说如何使用Let's Encrypt获取免费的SSL证书,免费使用https。
0x01、申请证书
如果你觉得网上那些命令行生成证书的方法并不好用,你可以按照下面的方法手动申请。
首先点击这里:https://www.sslforfree.com/
接着,输入域名,creat Free SSL。
接着会提示三种方式验证这个域名确实是你的。如果你开启了FTP,可以直接使用FTP账号和密码进行验证。如果没有FTP,可以对域名添加指定的TXT记录(第三个),或在网站上上传指定的验证文件(第二个)。根据自己的方便进行验证。
接着我们点击Download SSL。。。即可下载证书和私钥。
0x02、安装证书
Apache:
关闭Apache:
./ usr/local/httpd/bin/httpd –k stop
添加SSL支持,执行
vi /usr/local/httpd/conf/httpd.conf
#Include conf/extra/httpd-ssl.conf← 找到这一行,将行首的"#"去掉
↓
Include conf/extra/httpd-ssl.conf
重定向(强制https。可选)在httpd.conf文件尾加入如下内容:
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
</IfModule>
设置加密文件,在文件/usr/local/httpd/conf/extra/httpd-ssl.cnf中,将以下几行的注释去掉,并修改相应路径如下:
SSLCertificateFile "/usr/local/httpd/conf/sign/server.crt" SSLCertificateKeyFile "/usr/local/httpd/conf/sign/server.key" DocumentRoot "/srv/com.iaspec/saas/live"
启动apache:
./usr/local/httpd/bin/httpd –k start
安装完毕。
Nginx:
在server字段添加指定的三行即可。记得要自行修改文件位置。
server {
listen 443 ssl;
server_name test.com;
#开启ssl支持
ssl on;
#指定PEM格式的证书文件
ssl_certificate /path/to/test.pem;
#指定PEM格式的私钥文件
ssl_certificate_key /path/to/test.key;
......
}
如果希望用户访问http强制跳转到https,只需要在http字段加上下面的内容即可
server {
listen 80;
server_name test.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
如果希望http和https都可以访问,在listen 443;下面加上listen 80;即可。
最后重启nginx。安装完毕
最后,你可以在这个网站: https://www.websiteplanet.com/webtools/ssl-checker/ 来检测你网站的证书的安装情况。

