openssl+keytool+tomcat自签名证书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用OpenSSL 和keytool 实现tomcat下自签名证书

前言

项目需要在tomcat中配置ssl认证,学习了一下怎么配置,由于对pki认证体系、证书的制作和发放过程不了解,整个配置过程坎坷,所以配置成功后立即记录下来希望以后遇到类似的情况有所参考。

本文讲述了如何使用openssl 制作证书、keytool生成证书申请并将证书导入证书库、如何配置tomcat,和配置当中出现问题的解释。

本文用到的工具:OpenSSL.rar(点击下载) keytool(JDK中自带的工具)

(这里下载的OpenSSL.rar,其中的f并没有在ssl文件夹中,需新建ssl文件夹并把f 放入其中)。

使用openssl 生成根证书生成

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.根据证书库文件生成证书申请,生成文件certreq.cer

keytool -certreq -alias tomcat_server -sigalg "MD5withRSA" -file certreq.cer -keypass 123456 -keystore tomcatkey.jks -storepass 123456

制作服务器证书并导入证书库

1.用根证书签名证书申请生成根证书,生成文件tomcatcert.pem

openssl ca -keyfile cakey.pem -cert cacert.pem -in certreq.cer -out tomcatcert.pem -config f -policy policy_anything

至此证书可能会失败,其原因是openssl证书数据库里已经存储了这个证

书解决办法是在目录

openssl\democa\index.txt 把里面的内容全部删除(当然这个做法带来的危险是已有的证书也会删除,如果有耐心可以找到那条记录把他删除)

重新执行上面的那条语句就可以了

2.由于原有的格式都是pem格式,在导入证书库之前(即导入jks文件)需要转换成cer格式,生成文件cacert.cer、tomcatcert.cer

openssl x509 -in cacert.pem -out cacert.cer

openssl x509 -in tomcatcert.pem -out tomcatcert.cer

3.将转换成功的cer文件导入证书库文件中

首先导入根证书

keytool -keystore tomcatkey.jks -import -alias RootCA -file cacert.cer

然后再导入服务器证书

keytool -keystore tomcatkey.jks -import -alias tomcat_server -file tomcatcert.cer

Tomcat配置:

1、s erver.xml

找到%tomcat_home%下conf文件夹中server.xml,找到(默认被注释掉),去掉注释,修改如下:

其中,clientAuth表示客户认证,由于双向认证一般在B2B中,这里只需要服务器认证即可。keystoreFile表示证书地址(相对地址或绝对地址皆可),keystorePass与之前设置的密码一致。

2、w eb.xml

同样在conf中找到web.xml,在最后加上:

表明对所有请求都采用SSL协议,即写上这段代码以后,tomcat可以自动实现http到https的转换,而无需特意输入https://localhost:8443/。

IE浏览器配置(IE7):

第一次打开时,出现,这时只要单击证书错误,选择查看证书,点击安装证书,下一步,选择”将所有的证书放入下列存储区”,单击浏览,选择”受信任的根证书颁发机构”,再下一步,完成即可,以后在访问该页面时都不会提示了!

(在做的过程中,并没有出现提示安装证书,我通过浏览器-Internet选项--内容--证书—受信任的根证书颁发机构—导入,选中之前做的cacert.cer和tomcatcert.cer,这样就成功了。)

相关文档
最新文档