复制原始配置文件到tmp下面备用
cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnf
修改/tmp/openssl.cnf配置文件
[ req ]的配置段(没有则新增该配置段)
req_extensions = v3_req
-
[v3_req]的配置段(没有则新增该配置段)
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
-
[ alt_names ]的配置段(没有则新增该配置段)
[ alt_names ]
DNS.1 = baidu.com
DNS.2 = www.baidu.cn
DNS.3 = www.baidu.com.cn
DNS.4 = dwz.cn
DNS.5 = *.baidu.com
- 修改
[ CA_default ]下的如下配置
database = /usr/local/haproxy/etc/certs/index.txt
private_key = /usr/local/haproxy/etc/certs/baidu.ovz.rootca.key
baidu.ovz.rootca.key为根证书
根证书的生成
一 ) 首先创建CA根证书
- 生成RSA private key 给CA (3 DES 加密, PEM 格式):
$ openssl genrsa -out baidu.ovz.rootca.key 2048
- 产生一个X509结构,PEM格式的自签名证书(当然也可以由CA机构签名)
$ openssl req -sha256 -new -x509 -days 36500 -key baidu.ovz.rootca.key -out baidu.ovz.rootca.crt
- 查看该根证书的详细内容
$ openssl x509 -noout -text -in baidu.ovz.rootca.crt
- 验证证书有效性
$ openssl verify -CAfile baidu.ovz.rootca.crt baidu.ovz.rootca.crt
第一个为根证书,第二个为需要验证的子证书,由于是自签名,相当于自己给自己颁发的证书。
生成.key 和 .csr
openssl req -new -nodes -keyout baidu.com.key -out baidu.com.csr -config /tmp/openssl.cnf -subj '/C=CN/ST=Shanghai/L=Xuhui/O=@Baidu/OU=OVZ/CN=*.baidu.com/emailAddress=***@qq.com'
生成.crt
openssl ca -policy policy_anything -out baidu.com.crt -config /tmp/openssl.cnf -extensions v3_req -infiles baidu.com.csr
// openssl verify -CAfile baidu.ovz.rootca.crt bceit.com.crt 验证crt证书
生成.pem
cat baidu.com.crt baidu.com.key > baidu.com.pem
// openssl x509 -noout -text -in baidu.com.pem 查看.pem详情