HTTP升级HTTPS全过程记录

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

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

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

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

阿里云提供了免费证书, 有效期一年, 文中证书就用的阿里云的
免费的证书还有Let's Encrypt, 也挺好申请

下面主要记录白嫖阿里云证书, 以及证书配置过程

[toc]

前提准备

  • 已申请了自己的域名
  • 注册阿里云账号
  • 当然要有自己的服务器, 装一下 Nginx, 待会域名校验会用到

申请阿里云免费证书

选购证书

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

HTTP升级HTTPS全过程记录_第1张图片

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

HTTP升级HTTPS全过程记录_第2张图片

HTTP升级HTTPS全过程记录_第3张图片

申请证书

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

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

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

HTTP升级HTTPS全过程记录_第4张图片

HTTP升级HTTPS全过程记录_第5张图片

准备校验文件

HTTP升级HTTPS全过程记录_第6张图片

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

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

HTTP升级HTTPS全过程记录_第7张图片

下载证书

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

HTTP升级HTTPS全过程记录_第8张图片

上传证书, 配置Nginx

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

HTTP升级HTTPS全过程记录_第9张图片

贴一下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了

HTTP升级HTTPS全过程记录_第10张图片

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 !

HTTP升级HTTPS全过程记录_第11张图片

你可能感兴趣的:(linux,证书,nginx)