网站使用SSL
目录
为了http2.0打算给网站先换上ssl,在gogetssl买了Comodo PositiveSSL三年只要$13.15,应该算便宜了把。这里记录下nginx配置ssl的过程,具体原理就不说了,ssl用ssllabs测试下来结果为A,应该没问题。
1. 准备ssl证书
1.1 生成ssl key
openssl genrsa -des3 -out wuyuans.com.key 2048
输入一个密码,后面会用到。注意必须是2048,否则Comodo无法认证。
1.2 生成csr
openssl req -new -key wuyuans.com.key -out wuyuans.com.csr
按提示输入key的密码和其他信息,Common Name输入域名。
1.3 购买证书
ssl购买途径有很多,也有一些是免费的,觉得免费的会不稳定,付费的也不是很贵,就选了比较常用的Comodo PositiveSSL,在gogetssl买比官网便宜不少。
购买完成后,将上面生成的csr发给gogetssl认证,下载证书压缩包,解压。
1.4 串联证书
cat wuyuans_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt
2. nginx配置ssl
将前面生成的wuyuans.com.key和ssl-bundle.crt上传服务器,一般放在/etc/ssl/private/下。
2.1 生成dhparam
openssl dhparam -out dhparam.pem 4096
这个过程会很长,为了统一,把生成的dhparam.pem也放到/etc/ssl/private/下。
2.2 修改nginx配置文件
下面是我nginx关于ssl部分的配置,因为以后只用https,将80端口重定向到https下。
server {
listen 443 ssl;
server_name wuyuans.com;
ssl on;
ssl_certificate /etc/ssl/private/ssl-bundle.crt;
ssl_certificate_key /etc/ssl/private/wuyuans.com.key;
ssl_dhparam /etc/ssl/private/dhparam.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
}
server {
listen 80;
server_name wuyuans.com;
return 301 https://wuyuans.com$request_uri;
}
具体参数的含义就不多说了,请自行google。
使用前先测试一下。
nginx -t
successful后就可以restart或者reload。
nginx -s reload
//或者
service nginx restart
2.3 去除key密码(非必要)
现在nginx已经可以使用ssl,但是每次加载都需要输入key的密码,为了方便可以去除这个限制。
openssl rsa -in wuyuans.com.key -out wuyuans.com.nopasswd.key
相应的修改nginx配置文件指向wuyuans.com.nopasswd.key
ssl_certificate_key /etc/ssl/private/wuyuans.com.nopasswd.key;
这样再加载的时候就不需要密码了。
作者:wuyuan
本文来自Wuyuan's Blog 转载请注明,谢谢!
文章地址: https://www.wuyuans.com/blog/detail/124