Let’s Encrypt 开启多域名 HTTPS

上周去腾讯参加了 IMWEB 前端大会,听了关于 HTTPS 的讲座,回来把自己的主页和博客升级了一下,开启了 HTTPS.本文主要记录一下开启 HTTPS 的过程,以及碰到的问题和解决方法,以及如何多域名开启 HTTPS,做进一步的补充。

imweb-https

Let’s Encrypt 这里就不详细介绍了,开启 HTTPS 的方法建议先参考这篇文章:https://phphub.org/topics/2766,如果有问题,或者需要开启多个子域名 HTTPS,再参考本文。

本站有若干个子域名,其中给 www.tanteng.me 和 blog.tanteng.me 开通 https.首先给主站 tanteng.me,www.tanteng.me 开启 HTTPS.

1.克隆 acme-tiny 项目

2.创建私钥

这个就是账户,一个账户可以开启多个域名证书。

3.创建 CSR 文件

这里就遇到了问题,提示 /etc/ssl/openssl.cnf 文件找不到。服务器上这个路径确实没有 openssl.cnf 这个文件,但是系统默认安装了 openssl,于是使用 find 命令搜索了一下,发现文件路径是 /etc/pki/tls/openssl.cnf.

于是创建命令为:

4. nginx 配置文件修改

修改 nginx 配置,在 80 端口下,增加以下语句:

5. 获取签名证书

先手动创建一个目录,用来存放验证文件:

mkdir -p /var/www/challenges

再执行以下命令获取签名证书,注意 csr 文件这里使用前面步骤生成的 www.csr.

如果一切顺利,应该显示如下内容:

这就表明验证通过了。

6. 安装证书

最后在 nginx 配置文件增加 443 端口配置:

同时,可以添加一个 80 端口添加 301 重定向的配置,将 http 请求重定向到 https:

这样,主站就开启了 HTTPS,可以通过浏览器访问。

多域名开启 HTTPS

以上仅是给 www.tanteng.me 主域名开启了 HTTPS,但是访问博客 blog.tanteng.me 仍然是 HTTP 协议,给子域名开启 HTTP 只需要重复以上的步骤。

1.创建 csr 文件

注意这里生成一个 blog.key.

2.在博客的 nginx 配置 80 端口添加:

3.获取签名证书

注意这里使用 blog.csr,并且生成文件名改成 blog_signed.crt,也就是独立的 crt 文件。

没问题的话,执行结果如下所示:

4.安装证书

这里注意修改第一个 crt 文件是 blog_singed.crt ,生成新的 pem 文件。

5.nginx ssl 配置并使用新的路径,同时 80 端口做 301 重定向。

开启 HTTPS 需要注意的问题

成功开启 HTTPS 后,仍需要注意一些问题,网站的所有图片,css,js,都必须替换成 https 协议,如果使用的是 CDN,如七牛CDN,需要到七牛后台开启 https 域名。

qiniu_cdn_https

如果是调用的第三方接口,而接口没有 https 协议的,那么将无法使用。


SegmentFault讲堂开讲了:本次课程主要围绕 PHP 面试和笔试中经常会出现的一些知识点,但是面试官会在笔试题基础上深入扩展,那么你知道如何更好的回答让面试官满意吗?题目收集自腾讯,迅雷,美图等公司的笔试面试题,以及本人面试经历中印象中的知识点,同时也分享一些面试的经验,相信对你一定有很大的参考价值。点击前往

打赏

“Let’s Encrypt 开启多域名 HTTPS”的2个回复

评论已关闭。