Tomcat服务器配置https认证(使用keytool生成证书)

来源:互联网 发布:极客学院大数据百度云 编辑:程序博客网 时间:2024/05/17 09:14

一、证书生成

1、生成服务器证书

(1)打开打开命令控制台,进入jdk的bin目录

     cd D:\Program Files\jdk1.6.0_45\bin


(2)keytool为Tomcat生成证书(“-validity 36500”证书有效期,36500表示100年,默认值是90天)

     keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\tomcat.keystore -validity 36500


 

2、生成客户端证书

      keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore E:\mykey.p12

 

 

3、让服务器信任客户端证书

(1)由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:

     keytool -export -alias mykey -keystore E:\mykey.p12 -storetype PKCS12 -storepass 123456 -rfc -file E:\mykey.cer


(2)将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:

     keytool -import -v -file E:\mykey.cer –keystore E:\tomcat.keystore

 

(3)通过 list 命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

     keytool -list -keystore E:\tomcat.keystore

 

 

4、让客户端信任服务器证书

把服务器证书导出为一个单独的CER文件提供给客户端,使用如下命令:

        keytool -keystore E:\tomcat.keystore -export -alias tomcat -file E:\tomcat.cer

 

5、经过上面操作,生成如下证书:

 

其中 tomcat.cer 提供给客户端,tomcat.keystore供服务器使用

 

二、证书使用

1、服务器tomcat的配置

(1)打开Tomcat根目录下的/conf/server.xml,找到Connector port="8443"配置段,修改为如下:

     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150"
       scheme="https"  secure="true" clientAuth="false" sslProtocol="TLS"
       keystoreFile="E:/tomcat.keystore" keystorePass="123456"
       truststoreFile="E:/tomcat.keystore" truststorePass="123456" />

注释掉

<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->

 

(2)测试服务端,IE浏览器输入访问地址

 

 

但由于是自签名的证书,所以浏览器会警告我们不安全,选择继续:

 

 

可以看到能成功访问了(地址栏“证书错误”,此时数据已经是使用HTTPS传输了)

 

2、导入服务器公钥证书(tomcat.cer)

由于是自签名的证书,为避免每次都提示不安全。这里双击tomcat.cer安装服务器证书。

注意:将证书填入到“受信任的根证书颁发机构”

 

 

再次重新访问服务器,会发现没有不安全的提示了,同时浏览器地址栏上也有个“锁”图标。

 

至此,就完成了配置。


:由于jdk自带的keytool生成的签名属于弱签名算法(SHA-1),但是,SHA-1已经过时因而不再推荐使用。新证书使用了更强的签名算法(比如SHA-256)。SHA-1的证书将从2017开始不再被主流浏览器厂商视为安全的。




阅读全文
0 0
原创粉丝点击