ch3.ng

如何创建私有CA的 SSL 证书?


1:创建 CA 私钥
$ openssl genrsa -des3 -out ca.key 4096
2:生成 CA 的自签名证书,其实 CA 证书就是一个自签名证书
$ openssl req -new -x509 -days 365 -key ca.key -out ca.crt
3:生成需要颁发证书的私钥
$ openssl genrsa -des3 -out server.key 4096
4:生成要颁发证书的证书签名请求

** Ps:证书签名请求当中的 Common Name 必须区别于 CA 的证书里面的 Common Name

$ openssl req -new -key server.key -out server.csr
5:创建一个ext文件,内容如下
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]
DNS.1=abc.com
DNS.2=*.abc.com
6:用2创建的 CA 证书给4生成的签名请求进行签名
$ openssl x509 -req -days 365 -extfile http.ext -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
7:最终会得到一下几个文件
ca.crt: 这个是ca证书,客户端信任该证书意味着会信任该证书颁发出去的所有证书
ca.key: ca证书的密钥
server.key: 服务器密钥,需要配置的
server.csr: 证书签名请求,通常是交给CA机构,这里我们就自己解决了
server.crt: 服务器证书,需要配置的