使用StartSSL为你的服务器加密

目前越来越流行https的网站了,作为个人如何给自己的web服务器升级呢?不要错过免费的StartSSL。

来自以色列的StartSSL据说已经被一家中国公司收购(ps)。

那么,具体如何实施呢?接下来我们一步走。

登陆https://startssl.com,注册一个账号。它会要求你安装一个证书,凭借此证书才可以进入管理界面。

安装好证书后,选择Validations Wizard。验证你的域名,这时,你必须关闭域名商对你的域名信息保护,过不了几分钟即可生效。选择你注册的邮箱,它会向你的邮箱发一封验证邮件,从邮箱获取验证码,证明你拥有这个域名。

验证域名后,就要开始制作证书了,选择Certificates Wizard。选择DV SSL Certificate,输入你的二级域名。然后生成key和scr文件,命令如下

1
openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr

注意一点:Common Name填之前写的域名

接着,cat yourname.csr。将csr内容填到网页中。

提交网页,然后就生成了 certificate文件。

将文件下载下来,选择Nginx的压缩包,将里面的crt文件上传到你的服务器上。(例如/data/server)

为了安全起见,一般建议chmod 400一下key,csr,crt文件。

接下来,将你的key文件做一下处理,去除必须的口令。

1
2
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

紧接着,配置域名server。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server{
listen 80;
server_name 你的域名;
rewrite ^(.*) https://$server_name$1 permanent;
#不想跳转的话注释掉上一句,将下面location / 到location ~之间的内容copy过来即可
}
server{
listen 443;# ssl;
server_name 你的域名;
location / {
root 项目路径;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root 项目路径;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
ssl on;
ssl_certificate crt文件路径/server.crt;
ssl_certificate_key key文件路径/server.key;
}

重启nginx,恭喜你完成升级

参考博客:

https://www.centos.bz/2011/12/nginx-ssl-https-support/

Startssl 现在就启用 HTTPS,免费的!