https过程全记录

本文主要记录本博客https化的全部过程。

1. 生成 .key, .csr文件,为 https 证书申请做准备

openssl req -newkey rsa:2048 -sha256 -nodes -out u3xyz_com.csr -keyout u3xyz_com.key -subj "/C=CN/ST=GD/L=SZ/CN=u3xyz.com/emailAddress=jagus.ou@gmail.com"

2. 证书申请 (以阿里云为例)

云盾(安全) -> CA证书服务(数据安全) -> 购买证书

找到免费的DV证书类型,开始申请。申请完成后,补全信息。如果主机和域名使用的是阿里云,建议选择DNS验证。填完后直接提交。刷新申请,直接验证,验证成功,则会收到签发的证书。这时候我们就可以开始配置nginx了

阿里云免费证书 阿里云证书申请2

3. nginx配置

不多说了,直接上配置结果

server {
    listen       443 ssl;
    server_name  u3xyzhttps;

    #HSTS策略,转http请求为https
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;

    #证书文件
    ssl_certificate      cert/u3xyz_com.pem;

    #私钥文件
    ssl_certificate_key  cert/u3xyz_com.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    #优先采取服务器算法
    ssl_prefer_server_ciphers  on;

    #减少点击劫持
    add_header X-Frame-Options DENY;

    #禁止服务器自动解析资源类型
    add_header X-Content-Type-Options nosniff;

    #防XSS攻擊
    add_header X-Xss-Protection 1;
}

配置完成,重启nginx后,就可以在浏览器中输入网址验证https是否可以访问了。

4. 静态资源https化

因为Https下只能发送Https请求,所以域名下的所有资源都得支持https访问,可以通过配置nginx转发来进行支持,如:

{
    location ^~ /blog/ {
      alias  /path/to/assets/web/;
    }
}

到此,https改造就算完成了,访问页面,前面漂亮的小锁就亮起来了。

参考

证书替换(更新于2019年1月3日)

上次申请的SSL证书有效期为1年,到19年1月份就到期了,阿里云也早早地发了提醒短信。关于SSL证书续期我想补充几个点:

  1. 阿里云SLL证书不能续签,只能重新申请。但重新申请也是免费的,免费的!
  2. 操作非常简单,整个过程10分钟左右就可以完成
  3. 生成CSR文件问题

生成CSR文件问题

我在windows平台使用openssl生成csr及key文件时报错,不能生成csr文件。解决办法是加 //,如上图。

证书签发后,配置nginx,使用新的证书文件,重启nginx即完成ssl证书替换。

ssl证书 检查证书

留言列表
  • see holl:
    你好 最后一个方式的话 不太懂 是直接按照这个方式写就可以了吗
    • U3xyz:
      pageModel有一个私有属性 __route__,通过这个属性找到缓存中的所有pageModel,这样就可以使用这个页面的所有属性和方法啦
      2019年01月24日 21:41
    2019年01月22日 14:38 回复
  • MeloGuo:
    请问,pubSub中的$uid是做什么用的?
    • u3xyz:
      主要用于实现取消订阅功能,类似 pubsub.off(type, fn),通过fn.$uid定位要删除的回调函数
      2018年08月23日 10:08
    2018年08月21日 20:53 回复

发表评论: