原文链接:https://excaliburhan.com/post/use-qiniu-ssl-and-cdn.html

申请七牛SSL证书

其实,七牛在很早之前就支持CDN使用https,但是他要求证书的有效期是一年及以上,而我的主站用了Let's Encrypt的免费SSL证书,有效期90天,自动续签的形式。所以,为了使CDN的图片也是https的,一直采用了七牛默认的xxx.qnssl.com域名。

在11月,七牛发布了免费SSL证书,亚洲诚信的DV证书。申请起来也很简单,参见七牛SSL证书申请。当然,申请的证书只能用于CDN加速。

绑定自定义域名

通过个人面板-证书管理,我申请了域名为static.excaliburhan.com的SSL证书,验证成功后,接下来就是绑定自定义域名了。进入七牛云空间首页,点击对象存储,选择你想要使用https的bucket,在融合 CDN加速域名自定义域名点击右边,进行添加自定义域名。

在通信协议选项中选择HTTPS,可以选择或者手动填写证书。如果申请成功,下拉就可以看到我们的证书了。选中后,七牛会自动填写证书内容和私钥。这时,不要急着点击完成,将证书内容复制保存为certificate.crt(名字可以自行改,后缀需要保持一下,下同),将私钥内容复制保存为certificate.key,为后面配置做准备。这么做的原因主要是,我不知道怎么去下载证书内容和私钥,所以就采用这种比较原始的方法了。如果你知道的话,请告诉我。

最后,填完所有内容之后,点击创建即可。这时,添加的域名应该还处于审核状态,需要你添加CNAME,按照要求填写CNAME之后,进入nginx设置环节。

nginx设置

由于我的主站使用的Let's Encrypt证书,并且没有进行泛域名的配置,实际上Let's Encrypt也暂时不支持。那么,对static.excaliburhan.com进行设置。

首先,我们需要把保存的certificate.crt和certificate.key传到服务器的相应目录,我这的目录是/etc/nginx/certs。nginx简单配置如下。

  • server {
    listen ssl http2;
    server_name static.excaliburhan.com;
    ssl on;
    ssl_certificate /etc/nginx/certs/certificate.crt;
    ssl_certificate_key /etc/nginx/certs/certificate.key;
    }

重启nginx,将七牛CDN的域名换成自定义的域名,发现Chrome报错:隐私设置错误。研究发现,主要是我nginx主站设置了HSTS和HPKP,并且都设置了includeSubDomains。而我的主站使用的SSL证书和七牛的SSL证书并不是一个厂商,所以,请求被当成了劫持攻击了!

add_header    Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
add_header Public-Key-Pins ...(pin-sha256指纹设置);max-age=; includeSubDomains;

解决方法就是去掉includeSubDomains。

add_header Strict-Transport-Security "max-age=31536000";
add_header Public-Key-Pins ...(pin-sha256指纹设置);max-age=;

而且我还去掉了preload,原因有二,一是preload list申请必须包含includeSubDomains;二是个人网站申请Chrome的preload list基本无效。

除此之外,还要添加七牛SSL证书的CA的Public Key指纹,七牛的SSL证书是TrustAsia DV SSL CA - G5,指纹是IiSbZ4pMDEyXvtl7Lg8K3FNmJcTAhKUTrB2FQOaAO/s=。当然你也可以采用根证书VeriSign Class 3 Public Primary Certification 的指纹:JbQbUG5JMJUoI6brnx0x3vZF6jilxsapbXGVfjhN8Fg=。不推荐使用站点证书生成的指纹。

添加完毕后,使用service nginx restart重启nginx即可。

侵删

【转】七牛免费SSL证书,配置自定义域名CDN加速的更多相关文章

  1. 七牛免费SSL证书申请全流程

    购买证书 在七牛ssl 首页点击购买 购买限免证书 补全订单信息 免费证书,随意填写,问题不大 购买成功,查看订单详情,获取 TXT 值信息 添加 DNS TXT 验证 根据上一步,查看证书订单详情, ...

  2. 最便捷的免费 SSL 证书解决方案(实测start SSL、Let's Encrypt、七牛免费SSL证书)

    谷歌从 2017 年起,Chrome 浏览器将也会把采用 HTTP 协议的网站标记为「不安全」网站:苹果从 2017 年 iOS App 将强制使用 HTTPS:在国内热火朝天的小程序也要求必须使用 ...

  3. 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)

    在大家学习如何利用免费SSL证书配置网站HTTPS之前,我们先要搞清楚为什么要开启HTTPS,这个绿色的小锁真的有用吗?所谓的HTTPS其实是(安全套接字层超文本传输协议)是以安全为目标的HTTP通道 ...

  4. Nginx https免费SSL证书配置指南

    生成证书 $ cd /usr/local/nginx/conf $ openssl genrsa -des3 -out server.key 1024 $ openssl req -new -key  ...

  5. 超详细网站博客域名和二级域名、子域名升级HTTPS免费申请SSL证书配置nginx指南

    随着互联网的飞速发展,我们的工作生活已经离不开互联网,HTTP虽然使用极为广泛, 但是存在不小的安全缺陷, 主要是其数据的明文传送和消息完整性检测的缺乏, 而这两点恰好是网络支付,网络交易等网站应用中 ...

  6. 八大免费SSL证书-给你的网站免费添加Https安全加密

    评论»   https://www.freehao123.com/top-8-free-ssl-cert/ 文章目录 Let's Encrypt StartSSL SSL CloudFlare SSL ...

  7. 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题

    最近需要https这里看到一份不错的博客,收录一下! Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust ...

  8. 申请Let’s Encrypt永久免费SSL证书过程教程及常见问题

    配置证书https://easy.zhetao.com/   虽然目前Let’s Encrypt免费SSL证书默认是90天有效期,但是我们也可以到期自动续约,不影响我们的尝试和使用,为了考虑到文章的真 ...

  9. 七牛云创建存储空间并绑定自定义域名-https协议

    七牛云创建存储空间并绑定自定义域名-https协议 一.准备 0.绑定自定义域名的前提:你起码拥有过一个备案过的域名[一级域名] 1.在七牛云创建一个存储空间 2.存储空间绑定自定义域名(cdn加速) ...

随机推荐

  1. UVA506-System Dependencies(拓扑序)

    Problem UVA506-System Dependencies Accept:285  Submit:2824 Time Limit: 3000 mSec Problem Description ...

  2. Excel中row函数的使用方法

    1.row函数的含义 1 row函数的含义 返回所选择的某一个单元格的行数. END 2.row函数的语法格式 1 row函数的语法格式 =row(reference) 如果省略reference,则 ...

  3. redis类与用法

    <?phpnamespace app\common\model; class Cache { public $redis = null; public function __construct( ...

  4. 单节点etcd配置

    $ cat /etc/etcd/etcd.conf ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #监听URL,用于与其他节点通讯 ETCD ...

  5. ORB-SLAM2(4) 离线双目数据测试

    官网 https://github.com/raulmur/ORB_SLAM2 1从http://www.cvlibs.net/datasets/kitti/eval_odometry.php下载数据 ...

  6. metamask源码学习导论

    ()MetaMask Browser Extension https://github.com/MetaMask/metamask-extension 这就是整个metamask的源码所在之处,好好看 ...

  7. 虚拟机oom

    解决: 重启服务器或者增加内存

  8. Objective-C 事件响应链

    苹果app使用响应者对象(responder object)来接收和处理事件.响应者对象是NSResponder及其子类的实例,如NSView.NSViewController和NSApplicati ...

  9. three.js - 动画 图形统计帧频 dat.GUI

    运行一把: 代码解释: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  10. eclipse打断点的调试

    对于程序员来说,最重要的技能之一其实是在发现问题的时候,定位问题,然后才能解决问题. 发现问题的能力十分的重要.而debug的水平就是基础. 打断点之后,操作相应的步骤,然后eclipse会跳转到相应 ...