使用 SSL 证书保护网站的访问

今天,本人的博客去淘了一个几十块钱的 Comodo PositiveSSL 证书,以后通过 HTTP 将跳转至 HTTPS ,访问逼格更高。我以前也没有接触过 SSL ,导致拿到人生中第一张 SSL 证书的时候,Private Key 居然是通过第三方生成的,理论上来说这张证书基本上是废了,因为你家门的钥匙都是别人帮你配的,谁知道他有没有留一个副本!所以 Private Key 一定得自己生成。

以下的内容,随随便便搜索引擎便能搜索到更加详细的,我在这里也就不累赘了,大概的说一下一些简单的东西。

SSL 证书有什么用

  • SSL 是一个加密协议,它能保证你的数据在传输的过程中不被截取
  • 它能保证你的网站的内容不被篡改,比如国内的各宽带运营商,强制在你的网站上加 Javascript 代码,投放广告
  • 它能让你的网站看起来逼格更高

当然,到目前为止,我还是冲着第三个作用去的 :))

SSL 证书价格怎么样

在不久的将来,可能将是全民 SSL 的时代,到时候各 CA 会免费给大家签证书,相关的新闻可以自行搜索。目前,签发证书的成本其实还是蛮低的。如果你是个人使用,不防试试以下的 CA 签发的证书,如果你是商用,我觉得你应该比我更清楚应该去哪里签。

  • StartSSL 免费签单域名证书
  • 沃通 免费签单域名证书(中文,不过他的顶级 CA 还是 StartSSL, 而且二级 CA 还有大大的 FREE ,逼格不够)
  • Comodo PositiveSSL 我在 namecheap.com 签的单域名证书,50多RMB,淘宝搜索的话 7-50 RMB 不等

SSL 证书如何申请

在哪家 CA 申请证书都是差不多的流程。你需要准备的是你申请域名的 Private Key 和通过 Private Key 生成的 CSR (CERTIFICATE REQUEST),然后将 CSR 给 CA ,CA 域名审核通过后,将会给你一个 CRT SSL 证书。CSR 起到中间传递的作用,最后部署的时候,真正有用的只有 Private Key 和 CRT

如果你觉得通过命令行生成 Private Key 和 CSR 麻烦的话,我这里推荐一个在线生成的网站,这个网站纯前端生成,无后端服务器,理论上是安全的。

CSR Generator

记得生成之后,要点击下载 ZIP 包,里面含有 Private Key ,把它丢了就没救了。

SSL 证书如何部署

我觉得部署倒是挺简单的,把 Private Key 和 CRT 放在服务器上,配置 Nginx Conf ,重启完事。

host.conf 相关配置

1
2
3
4
5
6
7
8
9
10
server
{
    listen 443;

    # 其他内容 
      
    ssl on;
    ssl_certificate /etc/ssl/private/ssl.crt;
    ssl_certificate_key /etc/ssl/private/ssl.key;
}

把 HTTP 强制跳转至 HTTPS

1
2
3
4
5
6
server
{
    listen 80;
    server_name  dearb.me;
    rewrite   ^  https://$server_name$request_uri? permanent;
}

SSL证书的一些小问题

  • Android 浏览器或某些 PC 浏览器上显示证书不受信任。你需要找到你所申请 CA 的证书及根证书等证书链,放在你的证书 ssl.crt 后面就OK了
  • 浏览器上面没有显示绿标,而且灰色小黄标。那是因为你的页面含有 HTTP 协议的元素,全部使用 HTTPS ,就有小绿标了

Comments