Loading

自签名证书笔记

参考文章

How to Create Self-Signed Certificates using OpenSSL
证书链中的一个或多个中间证书丢失 的解决办法:导入中间证书
openssl-pkcs12
HTTP转HTTPS—使用OpenSSL创建自签名SSL证书以及Tomcat配置SSL证书实战
OpenSSL Req命令
openssl x509(签署和自签署)
使用 openssl 生成证书
openssl 查看证书细节
gmssl/openssl 生成V3证书时添加附加项(extendedKeyUsage 和 keyUsage )
使用openssl生成证书、cer文件、key公私钥、pem公私钥
私钥、公钥、签名、证书
DER、CRT、CER、PEM格式的证书及转换
X.509 数字证书中的扩展项 subjectAltName
openssl req(生成证书请求和自建CA)

遇见的问题

在windows 服务器上导入服务器证书的时候,碰到错误提示 :证书链中的一个或多个中间证书丢失

解决方法一:WIN+R 输入mmc,导入中间证书

解决方法二:在使用openssl合成pfx证书时,将中间证书一起合成,组成证书链;openssl pkcs12 ... -chain ...

解决方法三:CRT证书链合成ServerCACRT合并成一个ALL.CRT,适用一些只能指定一个证书文件的情况:cat Server.crt CA.crt > ALL.crt

生成脚本

#! /bin/bash
# V1证书 移除此参数:-extfile x509.ext  -extensions ca 
# https://www.openssl.org/docs/man3.0/man1/openssl-x509.html#-extfile 
# https://***/openssl-x509.html#-req
cat >x509.ext <<EOF

[ ca ]
# X509 extensions for a ca
keyUsage                = critical, cRLSign, keyCertSign
basicConstraints        = CA:TRUE, pathlen:0
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid:always,issuer:always

[ server ]
# X509 extensions for a server
keyUsage                = critical,digitalSignature,keyEncipherment
extendedKeyUsage        = serverAuth,clientAuth
basicConstraints        = critical,CA:FALSE
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid,issuer:always

EOF
# CA
openssl req -new -sha256 -nodes -newkey rsa:2048 \
-subj "//C=CN/C=CN/ST=ZJ/L=HZ/O=TEST/OU=TEST/CN=TESTCA" \
-keyout CA.key \
-out CA.csr \

openssl x509 -req -sha256 -days 3650 \
-extfile x509.ext  -extensions ca \
-in CA.csr \
-signkey CA.key \
-out CA.pem

# # CAS
# openssl req -new -sha256 -nodes \
# -newkey rsa:2048 \
# -subj "//C=CN/C=CN/ST=ZJ/L=HZ/O=TEST/OU=TEST/CN=CASSERVER" \
# -keyout CAS.key \
# -out CAS.csr  \

# openssl x509 -req -sha256 \
# -CA CA.pem -CAkey CA.key \
# -days 3650 -CAcreateserial -CAserial CA.srl \
# -extfile x509.ext -extensions server \
# -in CAS.csr \
# -out CAS.pem
posted @ 2022-12-29 15:36  毛豆炒肉丝  阅读(109)  评论(0)    收藏  举报