openssl生成自签名泛域名(通配符)证书

openssl自签名泛域名(通配符)证书生成命令(Liunx)

首先编译openssl.cnf文件,如果没有安装openssl的话先在度娘上搜索安装方法进行安装,下面的命令复制使用的时候将xxx.com改成自己的域名地址即可。

注意:将生成的xxx.com.csr和xxx.com.key保存好,如果以后要让CA厂商签名证书的时候就可以将xxx.com.csr文件发给CA厂商进行签名。

在 [ req ] 模块下 取消注释:req_extensions = v3_req
在 [ v3_req ] 块下增加一行 subjectAltName = @SubjectAlternativeName
在下面增加如下信息:
[SubjectAlternativeName]
DNS.1 = xxx.com
DNS.2 = *.xxx.com

1.首先我们自己充当CA厂商 / 生成CA根证书并自签署(用于签发我们自己的证书)
openssl req -sha256 -new -x509 -days 3650 -keyout CA.key -out CA.crt -config openssl.cnf

2.生成xxx.com.key密钥
openssl genrsa -out xxx.com.key 2048

3.生成 xxx.com.csr 证书签名请求
openssl req -new -sha256 -key xxx.com.key -out xxx.com.csr -config openssl.cnf
注:Common Name 就是在这一步填写 *.xxx.com 表示的就是该证书支持泛域名,common name一定要在SubjectAlternativeName中包含

4.查看签名请求文件信息
openssl req -in xxx.com.csr -text

5.使用自签署的CA,签署xxx.com.scr
openssl ca -in xxx.com.csr -md sha256 -out xxx.com.crt -cert CA.crt -keyfile CA.key -extensions v3_req -config openssl.cnf
注意:即便是你前面是sha256的根证书和sha256的请求文件,如果这里不加-md sha256,默认是按照sha1进行签名的

6.查看证书
openssl x509 -in xxx.com.crt -text

7.crt转pem格式
openssl x509 -in xxx.com.crt -out xxx.com.pem -outform PEM

8.生成p12格式的证书(利用生成的CA根证书和服务证书的crt和key文件生成P12文件)
openssl pkcs12 -export -in xxx.com.crt -inkey xxx.com.key -passin pass:changeit -name *.xxx.com -chain -CAfile CA.crt -password pass:changeit -caname *.xxx.com -out xxx.com.p12

使用jdk keytool工具进行生成tomcat/jboss端使用的证书文件(window下执行)。

1.查看p12证书
keytool -rfc -list -keystore xxx.com.p12 -storetype pkcs12

2.转换p12证书为jks证书文件
keytool -importkeystore -srckeystore xxx.com.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore xxx.com.jks

3.利用jks证书生成cer证书
keytool -export -alias *.xxx.com -keystore xxx.com.jks -storepass changeit -file xxx.com.cer

4.利用cer证书文件生成jdk所使用的文件
keytool -import -alias *.xxx.com -keystore cacerts -file xxx.com.cer

5.合并证书
keytool -import -alias *. xxx.com -file D:\java\jdk1.7.0_67\xxx.com\ xxx.com.cer -storepass changeit -keystore D:\java\jdk1.7.0_67\ xxx.com\cacerts

至此就大功告成了,是不是很简单。这个时候我们就可以将生成的xxx.com.jks 添加到tomcat中了。如果项目中还用到了nginx 的话就把 xxx.com.crt和xxx.com.key两个文件放到安装的nginx目录下进行配置

你可能感兴趣的:(工具,openssl,泛域名,https)