HTTP 升级 HTTPS 全过程记录

发布于: 2020 年 05 月 10 日
HTTP 升级 HTTPS 全过程记录

学习还是工作中, 都有可能需要我们把域名升级 HTTPS ,

比如, 你要使用微信公众, 小程序, 在初始化的时候, 就要求我们填写 HTTPS 的域名作为验证

本文记录了一次 HTTPS 域名配置的完整过程

话说 HTTPS 证书可是一笔不小的费用, 很多人倍感无力, 负担不起啊

阿里云提供了免费证书, 有效期一年, 文中证书就用的免费的

下面主要记录白嫖阿里云证书过程

前提准备

  • 已申请了自己的域名

  • 注册阿里云账号

  • 当然要有自己的服务器, 装一下 Nginx , 待会域名校验会用到

申请阿里云免费证书

选购证书

  • 控制台搜索 SSL, 点击"选购证书"

  • 选择 单域名 -- DV SSL -- 免费版, 可以看到收费0, 支付成功会有提示

申请证书

进入证书控制台, 点击证书申请, 填写信息

域名校验方式我选择的是 手动"文件校验"的方式,

如果你的服务器是阿里云的, 选择 "自动 DNS 验证"会很方便, 在这里咱们就按照常规方式来, 也算了解一下运维过程

准备校验文件

这里所谓验证, 其实就是通过上面的域名能访问到, 校验文件, 访问不到当然没法让你使用啦

Nginx 配置这里可能要注意下, 也没什么难度

下载证书

根据自己的服务器类型下载, 这里咱们选择 Nginx

上传证书, 配置 Nginx

咱们把 ssl 证书放到 /ssl (目录随意吧), 把下载的证书文件解压之后, 上传到该目录

贴一下 Nginx 配置, 记得改完配置要重启Nginx哦

server {
#listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
listen 443 ssl;
server_name xxx.com; #域名
# 增加ssl
#ssl on; #如果强制HTTPs访问,这行要打开
ssl_certificate /ssl/xxxx.pem;
ssl_certificate_key /ssl/xxxxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 指定密码为openssl支持的格式
ssl_protocols SSLv2 SSLv3 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5; # 密码加密方式
ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
# 定义首页索引目录和名称
location / {
root /usr/share/Nginx/html;
index index.html index.htm;
}
#重定向错误页面到 /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/Nginx/html;
}
}

然后就可以愉快的访问体验 HTTPS 了

赠送: Nginx 排错小技巧

在配置过程中, 可能会出现访问没反应, 等各种问题,

这时候, 不要慌, 咱们有思路

此时一定要观察 Nginx 的 access.log 和 error.log, 从 error.log 一般能找到有效信息, 可以拿到 error关键字, 再取搜索引擎去分析解决

我刚才配置就失败了一次, Nginx 配置完证书之后, 重启, 输入 url 访问未反应,

随即看下error.log,

2020/05/10 03:11:39 [emerg] 1#1: cannot load certificate "/ssl/xxx.key":
PEMreadbio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:
no start line:Expecting: TRUSTED CERTIFICATE)

带着关键字去搜索, 随便点进去一篇, 突然注意点, 我证书配置对应错了, 哈哈, 尴尬

马上改正, 重启, 验证有效, OK !

发布于: 2020 年 05 月 10 日 阅读数: 57
用户头像

猴哥一一 cium

关注

还未添加个人签名 2018.09.26 加入

一个 Java 从业者, 目前就职于杭州某公司

评论 (1 条评论)

发布
用户头像
记录一下, 备忘
2020 年 05 月 10 日 16:10
回复
没有更多了
HTTP 升级 HTTPS 全过程记录