原文 体验更好。
虽然我们不经常创建证书(尤其是根证书,申请 HTTPS 证书还是挺常见的), 但是偶尔我们还是需要创建特殊的自签名证书以便 开发/测试 使用, 最常见的就是需要 localhost 证书。
对于需要 mTLS 认证的场景来说,我们至少需要创建 3 个证书 以及 3 个公私密钥对。 分别是: 根证书、服务器端证书、客户端证书。
注解
这儿忽略了中间证书,因为我们不需要。
让我们开始一步一步的创建属于自己的自签名证书吧:
准备文件目录结构¶
请创建一个空目录(文件夹)来实验此教程。
rm -rf certs csr newcerts pkcs12 private index* serial*
mkdir certs
mkdir csr
mkdir newcerts
mkdir pkcs12
mkdir private
echo "1000" > serial
touch index.txt
创建根证书
这是教您如何使用 openssl 创建自签名根证书的流程。
创建根密钥¶
$ openssl genrsa -out private/ca.key.pem 4096
Generating RSA private key, 4096 bit long modulus
......................................................................................++
....................................++
e is 65537 (0x10001)
我们在这儿使用 RSA 4096, 因为根证书不经常使用,为了更好的安全性,我们使用较大的参数。
注解
生产环境一般都会有中间证书,我们这儿为了方便省略了中间证书的签发流程
创建根证书
现在我们使用刚创建的根密钥来创建我们的根证书:
$ openssl req -config openssl.ini -key private/ca.key.pem -new -x509 -days 7300 -sha256 -extensions v3_ca -out certs/ca.cert.pem -subj '/CN=www.qiyutech.tech/O=QiYuTech/ST=BeiJing/C=CN'
重要
建议您要使用 X509v3 扩展。
注解
openssl.ini 的配置在本文最后。
实际使用中请酌情填写有效期 或 咨询密码学专家的建议。
查看根证书¶
查看我们刚刚创建的根证书:
警告
请确保有 X509v3 扩展
其他内容,参见原文。