自签名证书之签发泛域名证书

修改openssl.cnf配置文件内容:

# vim /etc/pki/tls/openssl.cnf
[ req_distinguished_name ]  找到这项,将0.XXX,前面的0去掉。
0.organizationName                   = Organization Name (eg, company)
0.organizationName_default       = Default Company Ltd

[ req ]
default_bits            = 2048
default_md              = sha256        查看此项是不是sha256,不是的话自行修改
default_keyfile         = privkey.pem
distinguished_name      = req_distinguished_name
attributes              = req_attributes
x509_extensions = v3_ca # The extentions to add to the self signed cert     这行注释的话,取消注释。

[ v3_req ]      找到这行,添加信息,DNS表示可注册的泛域名。可添加多行信息。
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = martinhe.com
DNS.2 = *.martinhe.com

泛域名证书再签法时,Comman Name要写成在[ alt_names ]中存在的名称,如签署泛域名*.martinhe.com。

创建自签名证书并签发泛域名证书:

# mkdir /usr/local/harbor/ssl
/usr/local/harbor/ssl]# cd /usr/local/harbor/ssl
# (umask 066;openssl genrsa 2048 > cakey.pem)
# openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
CN
beijing
beijing
martinhe
devops
ca.martinhe.com
回车
# openssl x509 -in cacert.pem -noout -text  #可查看CA证书内容。
# openssl req -newkey rsa:1024 -nodes -keyout martinhe.com.key > martinhe.com.csr
CN
beijing
beijing
martim
devops
*.martinhe.com
回车
# openssl x509 -req -days 365 -in martinhe.com.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 > martinhe.com.crt

将自签名CA导入系统根证书信任机构,需要执行下列命令:

# openssl x509 -outform der -in cacert.pem -out cacert.crt  #转换证书格式
# cp cacert.crt /usr/local/share/ca-certificates
# sudo update-ca-certificates   #更新根证书
Updating certificates in /etc/ssl/certs...
rehash: skipping cacert.pem,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

将自签名CA移除系统根证书信任机构,需要执行下列命令:

/usr/local/share/ca-certificates]# rm -rf cacert.crt
# sudo update-ca-certificates --fresh   重新读取证书列表

参看地址:https://www.qiansw.com/add-the-ca-root-certificate-to-the-operating-system-for-trust.html