tomcat配置https单向和双向认证

1.认证简介

     ssl作为一个加密的协议,协议栈位于tcp协议之上,主要用来进行传输过程中的加密,加密的过程就涉及到证书相关的配置,本文重在讲解配置。

    tomcat默认的https端口是8443。

简要描述一下,ssl握手的过程

a.客户端发送client hello ,主要包括客户端支持的ssl协议和客户端支持的加密算法。

b.服务器将支持的协议、从客户端列表选取的加密协议、服务器的证书发送给客户端,如果是双向的,服务器会要求客户端提供证书。

c、客户端校验证书是否过期、证书的颁发机构是否是浏览器中注册的证书颁发机构。如果不是,则给出提示信息.

d.客户端和服务器进行相应的加密和解密完成握手(写的比较粗略)

2.模拟环境

      客户端:window7(X64)   谷歌浏览器(火狐浏览器可能有些问题)   证书储存路径:C:\Users\kefan\Desktop\conf

     服务器端(centos7 64)  tomcat7    /home/tomcat/apache-tomcat-7.0.75/keys

   

3.步骤

3.1单向认证

3.1.1服务器生成秘钥库(tomcat.keystore)

keytool -genkey -v -alias tomcat -keyalg RSA     -keystore tomcat.keystore -dname "CN=192.168.233.133,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass tomcat -keypass tomcat

3.1.2服务器生成颁发给客户端的证书文件(选配tomcat.cer)

         keytool -export -alias tomcat -keystore tomcat.keystore -file tomcat.cer -storepass tomcat

3.1.3修改tomcat的配置文件(server.xml)

  <Connector port="8443"
           protocol="org.apache.coyote.http11.Http11Protocol"
           maxThreads="150"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           clientAuth="false"
           sslProtocol="TLS"  
           keystoreFile="keys/tomcat.keystore"
           keystorePass="tomcat"
           truststoreFile="keys/tomcat.keystore"
           truststorePass="tomcat"/>

3.1.4测试

由于证书的颁发机构不是浏览器的根证书颁发机构,所以需要添加到信任列表中才能访问

3.1.5为了避免浏览器的添加信任可以选择导入3.1.2生成的证书文件(tomcat.cer)

    上个步骤中,由于证书的颁发机构不存在与浏览器的根证书颁发机构,所以给出了警告,取消这个警告,需要将服务器颁发的证书添加到浏览器的根证书颁发机构中,将tomcat.cer下载到客户端,安装,在选择证书存储时,选择受信任的根证书颁发机构,导入完成之后,重启浏览器,不出现警告信息。


3.2双向认证

3.1.1服务器生成秘钥库(tomcat.keystore)

keytool -genkey -v -alias tomcat -keyalg RSA   -validity 3650  -keystore tomcat.keystore -dname "CN=192.168.233.133,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass tomcat -keypass tomcat

3.1.2服务器生成颁发给客户端的证书文件(tomcat.cer)

keytool -export -alias tomcat -keystore tomcat.keystore -file tomcat.cer -storepass tomcat

3.1.3客户端生成秘钥库(client.p12)

keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12    -keystore client.p12 -dname "CN=192.168.233.1,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass client -keypass client

3.1.4客户端生成颁发给服务器端的证书文件(client.cer)

keytool -export -alias client -keystore client.p12 -storetype PKCS12 -storepass client -rfc -file client.cer

3.1.5服务器导入客户端颁发的证书文件(tomcat.truststore)

keytool -import -v -file  client.cer -keystore  tomcat.truststore -storepass tomcat

3.1.6客户端添加秘钥库到浏览器(client.p12)

       选择证书存储时,分别添加个人和受信任的根证书颁发机构.


3.1.7客户端添加服务器颁发的证书(tomcat.cer)

同单向配置中的导入选项。

3.1.8修改tomcat的配置文件

  <Connector port="8443"
           protocol="org.apache.coyote.http11.Http11Protocol"
           maxThreads="150"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           clientAuth="true"
           sslProtocol="TLS"  
           keystoreFile="keys/tomcat.keystore"
           keystorePass="tomcat"
           truststoreFile="keys/tomcat.truststore"
           truststorePass="tomcat"/>





猜你喜欢

转载自blog.csdn.net/kpp19920121/article/details/69666699