利用OpenSSL 和keytool 实现tomcat下自签名证书
前言
项目需要在tomcat中配置ssl认证,学习了一下怎么配置,由于对pki认证体系、证书的制作和发放过程不了解,整个配置过程坎坷,所以配置成功后立即记录下来希望以后遇到类似的情况有所参考。
本文讲述了如何使用openssl 制作证书、keytool生成证书申请并将证书导入证书库、如何配置tomcat,和配置当中出现问题的解释。
本文用到的工具:OpenSSL.rar(点击下载) keytool(JDK中自带的工具)
(这里下载的OpenSSL.rar,其中的opensslf并没有在ssl文件夹中,需新建ssl文件夹并把opensslf 放入其中)。
使用openssl 生成根证书生成
免费ssl证书永久生成1.解压openssl.rar 到c:\openssl 下,在命令行中将目录转到
c:\openssl\bin
2. 生成根证书的私钥,生成文件cakey.pem
openssl genrsa -out cakey.pem 1024
3.根据私钥生成证书申请,生成文件careq.csr
openssl req -new -out careq.csr -key cakey.pem
在生成申请时需要填入相关的信息,根据部署的地点不同做相应的改变
4. 利用根证书申请生成自签名根证书,生成文件cacert.pem
openssl x509 -req -in careq.csr -out cacert.pem -signkey cakey.pem -days 3650
至此根证书制作完毕,为了方便起见,在openssl.rar\bin\ 中已经包含生成根证书.bat 点击执行即可。
生成tomcat证书库文件和证书申请
1.生成证书库文件tomcatkey.jks
keytool -genkey -alias tomcat_server -keyalg RSA -keysize 1024 -validity "1825" -keypass 123456 -keystore tomcatkey.jks -storepass 123456
红部分可以根据具体的部署情况做相应的改变
-alias 证书库文件中私钥的别名
-keypass 证书库文件私钥的密码
-keystore 证书库文件的存储路径
-storepass 证书库文件的密码
执行后需要填写相应的信息
名称和姓氏一定要填入服务器的域名或ip地址,否则部署之后会提示证书地址不匹配的错误剩余的部分必须和根证书填写一致。(不知道根证书的内容,可以双击根证书查看其内容)
2.根据证书库文件生成证书申请,生成文件
keytool -certreq -alias tomcat_server -sigalg "MD5withRSA" - -keypass 123456 -keystore tomcatkey.jks -storepass 123456
制作服务器证书并导入证书库
1.用根证书签名证书申请生成根证书,生成文件tomcatcert.pem
openssl ca -keyfile cakey.pem -cert cacert.pem - -out tomcatcert.pem -config opensslf -policy policy_anything
至此证书可能会失败,其原因是openssl证书数据库里已经存储了这个证
书解决办法是在目录
openssl\ 把里面的内容全部删除(当然这个做法带来的危险是已有的证书也会删除,如果有耐心可以到那条记录把他删除)
重新执行上面的那条语句就可以了
2.由于原有的格式都是pem格式,在导入证书库之前(即导入jks文件)需要转换成cer格式,生成文件、
openssl x509 -in cacert.pem -
openssl x509 -in tomcatcert.pem -
3.将转换成功的cer文件导入证书库文件中
首先导入根证书
keytool -keystore tomcatkey.jks -import -alias RootCA -
然后再导入服务器证书
keytool -keystore tomcatkey.jks -import -alias tomcat_server -
Tomcat配置:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论