原文链接: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. 如何快速安装visual studio 2017和破解

    https://sm.myapp.com/original/Development/vs_community__1229872941.1512460494-v15.5.0.exe visual stu ...

  2. 最近公共祖先(LCA)模板

    第一行包含三个正整数N.M.S,分别表示树的结点个数.询问的个数和树根结点的序号. 接下来N-1行每行包含两个正整数x.y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树). 接下来M行 ...

  3. dd测试

    time dd if=/dev/zero of=/root/test.db2 bs=200K count=10000 oflag=dsync

  4. .net Parallel并行使用注意事项

    因项目响应过慢,代码优化空间不大,在暂时无法调整系统架构的情况下,只有使用.NET中的TPL解决一些模块耗时过多的问题.但在使用过程中也碰到了一些问题,现在把它写下来,用于备忘. 1. Paralle ...

  5. go标准库的学习-crypto/rand

    参考:https://studygolang.com/pkgdoc 导入方式: import "crypto/rand" rand包实现了用于加解密的更安全的随机数生成器. Var ...

  6. 为什么签名前要加"\x19Ethereum Signed Message:\n"

    在以太坊中,可以找到关于上述破损的解释例子.以太坊有两种消息,交易

  7. Spring Boot + Mybatis多数据源和动态数据源配置

    文章转自 https://blog.csdn.net/neosmith/article/details/61202084 网上的文章基本上都是只有多数据源或只有动态数据源,而最近的项目需要同时使用两种 ...

  8. Elasticsearch 数据搜索篇·【入门级干货】===转

    ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API.本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用.虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的 ...

  9. Android学习之基础知识十四 — Android特色开发之基于位置的服务

    一.基于位置的服务简介 LBS:基于位置的服务.随着移动互联网的兴起,这个技术在最近的几年里十分火爆.其实它本身并不是什么时髦的技术,主要的工作原理就是利用无线电通讯网络或GPS等定位方式来确定出移动 ...

  10. Omi框架学习之旅 - 通过对象实例来实现组件通讯 及原理说明

    组件通讯不是讲完了吗(上帝模式还没讲哈),怎么又多了种方式啊. 你484傻,多一种选择不好吗? 其实这个不属于组件通讯啦,只是当父组件实例安装和渲染完毕后,可以执行installed这个方法(默认是空 ...