• Linux配置Tomcat实现双向SSL认证(使用keytool工具生成证书)


     一、首先为tomcat服务器生成证书(tomcat8.5)

    keytool -genkey -v -alias tomcat -keystore tomcat.keystore -keyalg RSA -validity 180 -keysize 2048

     其中keystore password自己随便设置即可。

    What is your first and last name?必须是tomcat部署主机的域名或者IP[如:hxc.com 或者 192.168.1.6](就是你将来要在浏览器中输入的访问地址),否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”。

    二、生成客户端证书

    keytool -genkey -v -alias mykey -keystore mykey.p12 -storetype PKCS12 -keyalg RSA -validity 180 -keysize 2048

     其中内容随便填即可。

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

    1.由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。因不能直接将PKCS12格式的证书库导入服务器证书库,首先需要将客户端证书导出为一个单独的CER文件。

    keytool -export  -alias mykey -keystore mykey.p12 -storetype PKCS12 -storepass 你设置的证书密钥 -rfc -file mykey.cer

     2.然后将该文件导入到服务器证书中

    keytool -import -v -file mykey.cer -keystore tomcat.keystore

     3.我们可以验证一下是否成功将客户端证书加入到服务器证书库中

    keytool -list -keystore tomcat.keystore

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

    由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,这里需要把服务器证书导出为一个单独的CER文件。

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

    五、目前我们生成了如下四个文件,其中tomcat.keystore用于配置服务器,mykey.p12和tomcat.cer提供给客户端进行证书导入

     

     六、配置tomcat服务器server.xml文件(tomcat根目录的conf文件夹)

    找到Connector port="8443"那里,把注释去掉并修改

    clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证
    keystoreFile:服务器证书文件路径
    keystorePass:服务器证书密码
    truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书
    truststorePass:根证书密码
    配置完记得重启tomcat服务器
     
    注意:tomcat10修改的内容和8,9不一样!
    七、在客户端导入证书
    1.导入mykey.p12客户端证书

     

     2.导入tomcat.cer,将证书添加到“受信任的根证书颁发机构”

     如果安装证书之前浏览器处于打开状态,需要重启浏览器。

     八、我们可以访问服务器测试一下

     本次会话已经实现SSL双向认证。

     附录:keytool工具使用方法

     

  • 相关阅读:
    【php学习之路】微信公众帐号
    【php学习之路】php基础语法
    WCF全局异常处理
    【原创】【2015最新】微信公众平台开发手把手入门之一:缘起微信公众号(PHP,MYSQL, BAE)
    【原创】【2015最新】微信公众平台开发手把手入门之四:SVN和验证消息真实性(PHP,MYSQL, BAE)
    【原创】【2015最新】微信公众平台开发手把手入门之三:申请百度开放平台BAE云服务(PHP,MYSQL, BAE)
    【原创】【2015最新】微信公众平台开发手把手入门之二:开发者模式(PHP,MYSQL, BAE)
    微信公众号PHP简单开发流程
    angular+requirejs前端整合
    04、AngularJS的ng-bind、多个控制器和apply
  • 原文地址:https://www.cnblogs.com/werr370/p/14637351.html
Copyright © 2020-2023  润新知