北风留影 发表于 2017-1-29 06:16:21

TOMCAT建立SSL连接单向认证

  在TOMCAT下创建HTTPS项目的方法
和用JAVA签发数字证书
中说了怎么用TOMCAT建立HTTPS项目(单项认证)和怎么自己签发数字证书。下面总结下过程,经过我的测试,是没问题的。
  1.建立单项认证。
  --命令如下:
  打开cmd
  输入d:
  输入md keys
  输入cd keys
  创建CA证书库(密钥对)

keytool -genkey -dname "CN=ca, OU=NC, O=Shanghai University, L=ZB, ST=Shanghai,C=CN" -alias caserver  -keyalg RSA -keystore ca.keystore -keypass happy123 -storepass happy123 -validity 1000
  创建证书库(密钥对)

keytool -genkey -dname "CN=localhost, OU=NC, O=Shanghai University, L=ZB, ST=Shanghai,C=CN" -alias server  -keyalg RSA -keystore server.keystore -keypass happy321 -storepass happy321 -validity 1000
  注意 : 这里 CN=localhost ,这里的localhost是需要证书的域名,不能是IP
  导出CA证书

keytool -export -trustcacerts -alias caserver -file ca.cer -keystore ca.keystore -storepass happy123
  导出证书

keytool -export -trustcacerts -alias server -file server.cer -keystore server.keystore -storepass happy321
  查看密钥库

keytool -list -v -keystore server.keystore -storepass happy321
  双击ca.cer,安装CA证书后,使用CA证书签名证书(JAVA代码实现,见其他文章)
  


导入签名后证书
  要注意导入证书的顺序,要先导入CA证书,如果先导入认证后的证书,会出现这样的错误:
  


 

先倒入CA证书

keytool -import -alias ca -keystore D:\keys\server.keystore  -trustcacerts -file D:\keys\ca.cer -storepass happy321
  注意 -alias 不要和之前的重复
  keytool -import -alias server -keystore D:\keys\server.keystore  -trustcacerts -file D:\keys\serverSignKey.cer -storepass happy321
  注意 -alias 要和之前那个一样
  导入好后查看证书库,会出现如下的情况
  如图:
  

  配置tomcat 的server.xml文件,重启tomcat(注意tomcat版本不同,可能配置会有点不同)

    <Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443"enableLookups="true"
disableUploadTimeout="true" acceptCount="100"
maxThreads="200" scheme="https" secure="true"
SSLEnabled="true"sslProtocol="TLS"
clientAuth="false"
keystoreFile="D:\keys\server.keystore"
keystorePass="happy321" />
  再次提醒,如果是用ECLIPSE中建的服务器,注意删除了新建个服务器。
页: [1]
查看完整版本: TOMCAT建立SSL连接单向认证