本文为使用过程中的一个工具记录,可实现在本地开启一个 HTTPS 服务器用于开发或测试。我们会先创建一个 CA 根证书,再创建一个由 CA 根证书签名的自定义证书。
本文从以下几个方面讲解:
- 创建自己的自定义证书颁发机构 CA
- 使用 CA 根证书签名服务器证书
- 在 Node.js 服务器中配置证书
- 添加根证书到本地计算机的受信任根存储中
创建自己的自定义证书颁发机构 CA
- 生成私钥
$opensslecparam-outca.key-nameprime256v1-genkey
- 生成证书请求文件
$opensslreq-new-sha256-keyca.key-outca.csr #以下为需要输入的交互信息 CountryName(2lettercode)[]:CN StateorProvinceName(fullname)[]:BeiJing LocalityName(eg,city)[]:BeiJing OrganizationName(eg,company)[]:Node.js OrganizationalUnitName(eg,section)[]:Node.js CommonName(eg,fullyqualifiedhostname)[]:test.ca.com EmailAddress[]: Pleaseenterthefollowing'extra'attributes tobesentwithyourcertificaterequest Achallengepassword[]:abc123***
- 生成根证书
$opensslx509-req-sha256-days365-inca.csr-signkeyca.key-outca.crt
使用 CA 根证书签名服务器证书
- 生成私钥
$opensslecparam-outserver.key-nameprime256v1-genkey
- 生成证书请求文件
$opensslreq-new-sha256-keyserver.key-outserver.csr #注意下面服务器证书的CommonName不能与上面颁发者CA的CommonName一样 CountryName(2lettercode)[]:CN StateorProvinceName(fullname)[]:ShangHai LocalityName(eg,city)[]:ShangHai OrganizationName(eg,company)[]:Node.js OrganizationalUnitName(eg,section)[]:Node.js CommonName(eg,fullyqualifiedhostname)[]:test.https.com EmailAddress[]: Pleaseenterthefollowing'extra'attributes tobesentwithyourcertificaterequest Achallengepassword[]:abc123***
- 使用 CA 的根证书为服务器证书签名
$opensslx509-req-inserver.csr-CAca.crt-CAkeyca.key-CAcreateserial-outserver.crt-days365-sha256 #成功之后有以下提示 Signatureok subject=/C=CN/ST=ShangHai/L=ShangHai/O=Node.js/OU=Node.js/CN=test.https.com GettingCAPrivateKey
服务端证书中使用到的域名是我们自己定义的,需要在本地 hosts 文件做映射,如果不知道为什么要修改和该如何修改的
转载请注明:IT运维空间 » 安全防护 » 自定义根证书颁发机构 CA 生成自签名证书
发表评论