配置 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认证中心是信任的。
生成CA 的私钥
1
openssl genrsa -out ca.key 2048
生成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
生成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
参考
本文参考以下文章,在此致以诚挚谢意!
https://www.jianshu.com/p/449047437697