LinMao's Blog
学术科研生活记录与分享!

用自签名SSL证书和Cloudflare实现Https

之前是用付费的SSL证书实现https访问,最近证书过期了。谷歌要求.dev域名必须https,所以网站没法访问了。鼓捣了一下,用自签名SSL证书和Cloudflare实现https,并且一劳永逸。

Cloudflare支持

Cloudflare上面支持四种程度的SSL模式:

Off:关闭 SSL,使用http访问;

Flexible:从Browser到Cloudflare加密(https或者http访问),Cloudflare到server不加密(http访问);

Full:全部加密,需要在服务器上部署证书,但 CloudFlare 不会检查证书的有效性(均为https访问);

Full(Strict):严格模式,也就是全部加密,而且 CloudFlare 会检查服务器上的证书是否有效(均为https访问)。

Full(Strict)模式下不能部署自签名的证书,需要一个有效机构颁发的证书,例如 letsencrypt 的证书,这些证书或者收费或者有效期很短。Full模式下使用自签名证书就不存在这个问题,可以随意签发长期证书。

安装SSL

签发自签名证书

接下来,以给linmao.dev签发自签名证书。

  1. 生成工作目录(用来存放证书和中间文件)
  2. 创建一个私钥ca.key,为下一步穿件CA证书做准备

    执行命令后,会让输入pass phrase,随便输入什么就行,只是一个临时密码,下一步会用到;
  3. 生成CA根证书(公钥)

    -days后面7305表示证书有效天数,这里直接设置成20年

    执行命令后,需要输入上一步设置的临时密码;组织地区信息随便填写,其中Common Name填写需要签发的域名,填写根域名linmao.dev,就直接签发根域的CA证书;

  4. 接着生成一个给泛域名的私钥

    执行命令与上面创建私钥一样,依旧需要设置临时密码以备下面使用;

  5. 解密私钥

  6. 生成签名请求

    输入命令以后,随便填写组织地区信息,其中Common Name填写泛域名(*.linmao.dev),这样生成的证书可以供所有子域使用;

  7. 修改文件准备签名

    现在需要修改文件签名,没有这一步会报错,创建一些中间文件就可以执行签名

  8. 执行签名

    最后生成一个linmao.dev.crt文件,把ca.crt中的内容复制粘贴到linmao.dev.crt文件内容后面,就得到签发后的证书。

最后只需要用到上面生成的linmao.dev.crt(网站证书)和linmao.dev.key(网站私钥),将这两个文件上传到服务器使用。

配置nginx

找到网站对应的nginx配置文件,大概在/usr/local/nginx/conf/vhost目录下,修改对应的网站配置文件:

修改完成以后执行下面命令检查nginx配置文件是否有错

然后重启nginx,完成网站证书绑定。

 

 

Reference:

用自签名 SSL 证书配合 CloudFlare 免费 SSL 构建全站 HTTPS

Can’t load /root/.rnd into RNG

 

赞(1) 打赏
转载请注明出处:LinMao's Blog(林茂的博客) » 用自签名SSL证书和Cloudflare实现Https

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

LinMao's Blog(林茂的博客)

了解更多联系我们

觉得文章有用就打赏一下作者吧~

支付宝扫一扫打赏

微信扫一扫打赏