现在SSL证书的价格越来越亲民了。
最近发现了RapidSSL Online的40美金3年的廉价SSL证书,还是GeoTrust的。
忍不住买了一个。
分享一下具体的购买过程。
声明: RapidSSL没给任何广告费用,因为购买和安装过程十分顺畅,纯分享。
http协议默认情况下是不加密的。各种密码,邮件,私人信息都是明文传送。
SSL是Secure Socket Layer的简称,具体的作用就是在部署了SSL证书的网站跟用户浏览器之间建立一个安全的会话。
以防止信息在互联网任何中间节点上被盗用。
SSL的工作原理网上很多,这里就不唠叨了,具体可以看这里或者 这里
https://www.rapidsslonline.com/
Standard SSL Certificates
1 year @ $17.99
2 years @ $15.99
3 years @ $12.99
4 years @ $11.99
这种证书是最基本的证书,提供商是GeoTrust。
可以有一个Common Name, 加入现在的公司后发现购买的是 domain.com的证书,导致www.domain.com不能使用。
在这里提醒一下考虑购买的朋友, 买www.domain.com就已经包含了domain.com的证书,可是买domain.com的
如果你有很多子域名需要证书,那么需要下面任意一个:
购买一个支持多个SAN的证书 (支持多个子域名)
购买一个Wildcard证书 (支持任意多个子域名)
不过这些都是300-2000块美金一年的证书了.
选择 Standard SSL Certificates, RapidSSL.
点击 Buy Now,用Paypal付钱。之后你会收到一个邮件。有一个GeoTrust生成连接。先不要点击链接,因为需要我们先去部署的服务器上面搞一个CSR
sudo mkdir /etc/nginx/ssl cd /etc/nginx/ssl #生成private key和生成 CSR openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr 这里问你输入一个passphrase,选择一个容易记得,下一步会需要输入。 Country Name (2 letter code) [AU]:US #国家代码 State or Province Name (full name) [Some-State]:New York #省份 Locality Name (eg, city) []:NYC #城市 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc #公司名称 Organizational Unit Name (eg, section) []: #部门名称 Common Name (e.g. server FQDN or YOUR name) []: *.example.com Email Address []: [email protected] #管理员邮箱
生成之后,就可以点击GeoTrust的连接,然后CSR那个框框里面填入 server.csr 文件的内容。 然后选择你的管理员邮箱完成表单。这里一定要选一个可靠的邮箱,因为证书是通过邮箱发送给你的。
完成之后,邮箱会收到一个Approval的邮件,点击连接后选择Approve。
下一个邮件就会收到证书了。
收到证书后,再/etc/nginx/ssl文件夹下面新建一个server.crt的文件,把证书内容粘贴进去。证书这部分就搞定了。
我们的private key是有passphrase的,我们需要去掉private key的passphrase才能让Nginx自由自在的启动。
cp yourdomain.key yourdomain.key.org
openssl rsa -in yourdomain.key.org -out yourdomain.key
证书申请成功后,把证书内容复制保存到vps上的yourdomain.pem里,StartSSL的证书还需要把它的根证书合并进去才能用
cat 3f4b02a538c0c.crt gd_bundle-g2-g1.crt >> yourdomain.pem
之后再nginx.conf中配置
server { listen 80; listen 443 ssl; yourdomain_name example.com; root /usr/share/nginx/www; index index.html index.htm; ssl on; ssl_certificate /etc/nginx/ssl/yourdomain.crt; ssl_certificate_key /etc/nginx/ssl/yourdomain.key; }