1、查看证书内容
openssl x509 -text -noout -in mydomain.crt
2、创建自签根证书
openssl genrsa -out myCA.key
openssl req -new -x509 -days 3650 -key myCA.key -out myCA.crt
3、创建自签证书请求
请求时候没带x509v3
openssl genrsa -out mykey.key
openssl req -new -key mykey.key -out mycert.csr
4、根证书签发下级证书:
4.1、普通什么都没有,不带x509v3
openssl x509 -req -CA myCA.crt -CAkey myCA.key -CAcreateserial -days 3560 -in mycert.csr -out mycert.crt
4.2、绑定域名或者ip,带x509v3
x509v3信息
用myca签发下级时候才带x509v3
vim v3.ext
[default]
# Extensions to add to a certificate request
#basicConstraints = CA:TRUE
#keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=@alt_names[alt_names]
#DNS.1 = flymote.com
#DNS.2 = *.flymote.com
#DNS.3 = www.flymot.com
#DNS.4 = *.flymot.com
IP.1 = 1.2.3.4
IP.2 = 5.6.7.8
通过自签根证书签发带域名或者ip的证书
openssl x509 -req -CA myCA.crt -CAkey myCA.key -CAcreateserial -days 3560 -in mycert.csr -out mycert-domain.crt -extfile v3.ext
5、转换为pkcs12(.p12)
摘自tomcat ssl配置文档:https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration
openssl pkcs12 -export -in mycert.crt -inkey mykey.key\
-out mycert.p12 -name tomcat -CAfile myCA.crt\
-caname root -chain
别人家一:
https://www.it610.com/article/1288242166862229504.htm
请求文件添加x509信息:
1、拷贝openssl.cnf ,添加 san 信息,openssl req 时候 -config openssl.cnf
2、根证书签发时候再带上 -config openssl.cnf -extensions v3_req。或者里面创建根证书时候带san
总觉得第二部特多余,所以我继续找。
别人家二:
https://vircloud.net/operations/sign-ip-crt.html
1、创建根证书后还要添加本地信任
2、创建key时候添加2048
3、创建请求时候没有san
4、配置文件用在根证书签发下级证书,带了证书功能。用-extfile 引入自己写的san配置文件,或者用默认位置openssl.cnf,通过-extensions 指定配置文件中的x509信息块
本地信任我觉得没用,2048多余,特抗拒修改默认配置文件,为什么和第一个参考不同,san配置文件用在下级签发,不是请求?
别人家三:
https://blog.csdn.net/qq_24601199/article/details/105535345
不吐2048,serial不知道有什么用,没说到x509 san的事
别人家四:
https://www.icode9.com/content-4-681600.html
1、事拷贝openssl.cnf
2、事没说到 basicConstraints = CA:FALSE -> TURE
3、请求和签发都用 -config -extensions
看了好多好多。后来我打开 openssl.cnf
前几行就说到,在openssl x509 命令时候用 -extfile 添加 x509v3扩展信息
# To use this configuration file with the "-extfile" option of the
# "openssl x509" utility, name here the section containing the
# X.509v3 extensions to use:
# extensions =
# (Alternatively, use a configuration file that has only
# X.509v3 extensions in its main [= default] section.)
但是这里 [= default] section 什么意思呢?反正我什么都不加,或者[default]都成功了。basicConstraints = CA:TRUE 都不用
把自签证书和自签根证书添加到Array后,激活ssl连接,提示证书链不完整?
警告: cert chain is incomplete for sslv-203, please add interca or rootca