window环境下利用OpenSSL给tomcat配置证书
自己在配置证书时走了很多弯路,加之全网并没有一个有效的解决方法顾写下此文
不多废话
首先进入OpenSSL在bin下建立一个CA文件夹用于存放:自制CA证书,自制客户端、服务端证书
进入CA文件夹打开cmd
为服务器端和客户端准备公钥、私钥:
生成服务端私钥
openssl genrsa -out server.key 1024
接着生成服务器端公钥:
openssl rsa -in server.key -pubout -out server.pem
生成客户端私钥:
openssl genrsa -out client.key 1024
生成客户端公钥:
openssl rsa -in client.key -pubout -out client.pem
生成 CA 证书
生成 CA 私钥:
openssl genrsa -out ca.key 1024
生成请求文件:
openssl req -new -key ca.key -out ca.csr
注意,这里的 Organization Name (eg, company) [Internet Widgits Pty Ltd]: 后面生成客户端和服务器端证书的时候也需要填写,不要写成一样的!!!
可以随意写如:myca, myse, mycl。
然后 Common Name (e.g. server FQDN or YOUR name) []: 这一项,是最后可以访问的域名,我这里为了方便测试,写成 localhost
生成ca证书:
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
生成服务器端证书和客户端证书
服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件:
openssl req -new -key server.key -out server.csr
向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书:
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
生成client端csr:
openssl req -new -key client.key -out client.csr
client 端得到 CA 签名生成client端证书:
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt
这时我们将会得到以下的文件
转化格式
导出ca.p12格式文件
openssl pkcs12 -export -in ca.crt -inkey ca.key > ca.p12
导出server.p12文件
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12
导出client.p12文件
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
再将server.p12文件转化为jks文件
将证书server.jks拷贝到Tomcat的conf文件夹下。
配置Tomcat server.xml文件,需要修改三个地方
改为如图所示红圈所画
注意有注释的一定要将注释取消后再进行操作
将ca.p12,client.p12分别导入到IE中去(打开IE->;Internet选项->内容->证书)。
ca.p12导入至受信任的根证书颁发机构,client.p12导入至个人。
这样启动Tomcat,用IE访问https://localhost/
证书导入完成
参考文献:
Linux环境下,自制CA证书,自制客户端、服务端证书
配置server.xml
证书格式的转化
证书的导入