学习还是工作中, 都有可能需要我们把域名升级为HTTPS,
比如, 你要使用开发微信公众, 小程序相关应用, 在初始化的时候, 就要求我们填写HTTS的域名作为验证
本文记录了一次HTTPS域名配置的完整过程
话说HTTPS证书可是一笔不小的费用, 很多人倍感无力, 负担不起啊
阿里云提供了免费证书, 有效期一年, 文中证书就用的阿里云的
免费的证书还有Let's Encrypt, 也挺好申请下面主要记录白嫖阿里云证书, 以及证书配置过程
[toc]
前提准备
已申请了自己的域名
注册阿里云账号
当然要有自己的服务器, 装一下 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": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
带着关键字去搜索, 随便点进去一篇, 突然注意点, 我证书配置对应错了, 哈哈, 尴尬
马上改正, 重启, 验证有效, OK !
本文由博客群发一文多发等运营工具平台 OpenWrite 发布