生成CA证书和server证书
证书已经生成好,存放在
/cert/ca/ca.crt和/cert/ca/ca.key
openssl genrsa -out ca/ca.key 4096openssl req -new -sha256 -out ca/ca.csr -key ca/ca.key -config conf/ca.conf --subj="/CN=kajweb"其中
kajweb为CA证书颁发者名称,使用时替换成自己的名字即可。
openssl x509 -req -days 3650 -in ca/ca.csr -out ca/ca.crt -signkey ca/ca.key -extfile conf/ca.conf前面两步和生成CA证书一样,但是注意配置文件需要修改为server.conf。同时需要根据生成证书的域名,在server.conf中修改alt_names中的DNS1(Chrome 58↑)
由于Chrome 58 及以上版本只会使用 subjectAlternativeName 扩展程序(而不是 commonName)来匹配域名和网站证书。如果直接按照下面的步骤生成的ssl证书是不能直接在谷歌正常使用的,会说证书无效,并报错:NET::ERR_CERT_COMMON_NAME_INVALID 。 https://support.google.com/chrome/a/answer/7391219?hl=zh-Hans
openssl genrsa -out server/server.key 4096openssl req -new -sha256 -extensions req_ext -out server/server.csr -key server/server.key -config conf/server.conf -subj="/CN=localhost"
localhost对应的是域名
openssl x509 -req -days 3650 -extensions req_ext -in server/server.csr -signkey server/server.key -out server/server.crt -CA ca/ca.crt -CAkey ca/ca.key -CAserial server/server.srl -CAcreateserial -extfile conf/server.conf