创建自己的证书颁发机构(CA)
即使是测试目的, 也会出现有多个站点需要自定义证书的情况, 不可能要求用户每个站点装一个 我们何不把自己添加成一个证书颁发机构(CA), 然后把这个证书装给客户端, 那么由这个CA颁发的证书都会被自动信任.
首先, 用同样的语法创建一个证书, 我们把名字取明确一些, 就叫myCA
吧(跟第一步生成普通证书是一样一样的, 只是这次我们把它理解成一个证书颁发机构)
openssl genrsa -out myCA.key 2048
openssl req -new -x509 -key myCA.key -out myCA.cer -days 36500
然后, 基于这个证书生成一个证书请求(CSR
), (同样, 先生成一个key, 要用key来请求)
openssl genrsa -out server.key 2048
openssl req -new -out server.req -key server.key -subj /CN=域名
注:
1. 一旦域名配置了, 用不同于这个域名的主机名来请求, 就会校验失败
2. 这里用到了上面说的-subj
参数
最后, 通过服务器证书(我们理解的CA), 对这个签发请求进行签发
openssl x509 -req -in server.req -out server.cer -CAkey myCA.key -CA myCA.cer -days 36500 -CAcreateserial -CAserial serial