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/ 来检测你网站的证书的安装情况。