配置 HTTPS

免费申请证书来配置 https。

HTTPS,SSL,证书关系

  • HTTPS 是通过 HTTP + SSL 组成
  • SSL 的实现是通过安装数字证书来实现
  • CA 签发数字证书
  • 数字证书包含了加解密的算法
  • 数字证书用于建立信任并且分发公钥

软件

  • openssl

    用于生成密钥

  • cerbot或者acme

    本文采用 win-acme 来获取证书

上述两个软件均可用 scoop 安装

通过openSSL制作证书

在说明证书制作过程前,先说明制作证书时,用到的几类文件的作用: .key 文件:私钥 .csr 文件:证书签名请求文件,含有公钥信息,certificate signing request 的缩 .crt 文件:用 .csr 生成的证书文件,certificate 的缩写,这就是数字证书

生成自签名根证书:就是模仿证书权威机构的作用,给用户提供一个权威机构的根证书。在真实场景中,根证书是CA认证中心给自己颁发的证书,是信任链的起始点。任何安装CA根证书的服务器都意味着对这个CA认证中心是信任的。

  1. 生成CA 的私钥

    1
    openssl genrsa -out ca.key 2048
  2. 生成CA 证书请求文件

    1
    openssl req -new -key ca.key -out ca.csr

    注意:

    • 如果要用 https,那么 common name 那里应该是域名,否则会引起浏览器警告
    • 密码可以不输入

    设置密码后的影响

    我们在生成 RSA 私钥,即 ca.key 时设置了密码,这样会导致在启动nginx服务时,每次需要输入密码。

    可能通过下列方式删除密码,生成一个没有密码的 RSA key:

    1
    openssl rsa -in ca.key -out ca_no_pass.key
  3. 生成CA证书

    1
    openssl x509 -req -days 365 -in ca.csr -signkey ca_no_pass.key -out ca.crt

用win-acme给 windows 服务器添加SSL(Let's Encrypt)证书

见参考 2

参考

本文参考以下文章,在此致以诚挚谢意!

  1. https://www.jianshu.com/p/449047437697

  2. 用win-acme给windows服务器添加SSL(Let's Encrypt)证书