zoukankan      html  css  js  c++  java
  • Tomcat (1) —— Mac下配置Tomcat Https/SSL

    Tomcat (1) —— Mac下配置Tomcat Https/SSL


    tomcat版本: tomcat-8.0.29

    jdk版本: jdk1.8.0_65

    参考来源:

    SSL/TLS Configuration HOW-TO

    【高可用HA】Apache (2) —— Mac下安装多个Apache Tomcat实例

    完美配置Tomcat的HTTPS

    两步搞定 Tomcat 下启用 https:// 访问

    tomcat下配置https环境

    安装与配置

    首先

    参照博文配置好单个Tomcat实例作为https的目标测试服务环境。"./servers/cluster/tomcat/node-c"

    【高可用HA】Apache (2) —— Mac下安装多个Apache Tomcat实例

    配置证书

    1. 创建证书

    证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;本教程由于是演示所以就自己用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买,证书认证一般都是由VeriSign认证,中文官方网站:http://www.verisign.com/cn/

    先查看当前JAVA_HOME的jdk版本:

    $ java -version
    java version "1.8.0_65"
    Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
    Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
    
    * 注意以下提示输入服务器域名的时候不能用IP地址

    用JDK自带的keytool工具生成证书:

    $ keytool -genkey -alias hoau -keyalg RSA -keystore /Users/Richard/Documents/Dev/servers/cluster/tomcat/keys/hoaukey
    输入密钥库口令:
    再次输入新口令:
    您的名字与姓氏是什么?
    	[Unknown]:  sso.hoau.com
    您的组织单位名称是什么?
    	[Unknown]:  hoau.com
    您的组织名称是什么?
    	[Unknown]:  sso
    您所在的城市或区域名称是什么?
    	[Unknown]:  Shanghai
    您所在的省/市/自治区名称是什么?
    	[Unknown]:  Shanghai
    该单位的双字母国家/地区代码是什么?
    	[Unknown]:  CN
    CN=sso.hoau.com, OU=hoau.com, O=sso, L=Shanghai, ST=Shanghai, C=CN是否正确?
    [否]:  y
    
    输入 <hoau> 的密钥口令
    	(如果和密钥库口令相同, 按回车):
    

    * 关于以上问题参数的说明
    • 单点登陆服务器的域名:

        您的名字与姓氏是什么?
        	[Unknown]:  sso.hoau.com
      
    • 公司的名称:

        您的组织单位名称是什么?
        	[Unknown]:  hoau.com
      
    • 单点登陆服务名称:

        您的组织名称是什么?
        	[Unknown]:  sso
      
    • 所在地及国别:

        您所在的城市或区域名称是什么?
        	[Unknown]:  Shanghai
        您所在的省/市/自治区名称是什么?
        	[Unknown]:  Shanghai
        该单位的双字母国家/地区代码是什么?
        	[Unknown]:  CN
      
    • 最后输入客户端所用密钥(Hoau123):

        输入 <hoau> 的密钥口令
        (如果和密钥库口令相同, 按回车):
      

    如果出现如下错误:

    keytool 错误: java.io.FileNotFoundException: /Users/Richard/Documents/Dev/servers/cluster/tomcat/keys/hoaukey (No such file or directory)
    

    这可能是因为目标路径上文件不存在。

    如果出现如下错误:

    keytool 错误: java.io.FileNotFoundException: /Users/Richard/Documents/Dev/servers/cluster/tomcat/keys/hoaukey (Is a directory)
    

    这是因为hoaukey是文件目录,将其删除即可。

    2. 导出证书

    :tomcat Richard$ keytool -export -file ./keys/hoau.crt -alias hoau -keystore ./keys/hoaukey
    输入密钥库口令:
    	存储在文件 <./keys/hoau.crt> 中的证书
    

    3. 为客户端的JVM导入证书

    $ sudo keytool -import -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/security/cacerts -file ./keys/hoau.crt
    

    运行结果(此处密钥库口令与之前生成的口令相同)

    输入密钥库口令:
    再次输入新口令:
    所有者: CN=sso.hoau.com, OU=hoau.com, O=sso, L=Shanghai, ST=Shanghai, C=CN
    发布者: CN=sso.hoau.com, OU=hoau.com, O=sso, L=Shanghai, ST=Shanghai, C=CN
    序列号: 54668c91
    有效期开始日期: Thu Dec 10 10:30:57 CST 2015, 截止日期: Wed Mar 09 10:30:57 CST 2016
    证书指纹:
    	 MD5: 13:40:A0:58:44:73:95:C5:DD:5B:3F:A9:75:07:EF:9C
    	 SHA1: 31:06:8C:A7:68:34:BE:A1:28:11:DE:27:3E:62:58:58:D7:D5:C1:56
     	SHA256: AC:6F:B2:DE:AC:69:D0:D6:BF:E6:A6:CD:BE:DF:EE:EA:79:17:FA:61:20:8D:06:24:E1:4B:00:55:5F:D9:65:BE
     	签名算法名称: SHA256withRSA
     	版本: 3
    
    扩展:
    
    #1: ObjectId: 2.5.29.14 Criticality=false
    	SubjectKeyIdentifier [
    		KeyIdentifier [
    			0000: 22 7B 1A C9 78 B8 F8 B3   0B 3A F5 30 DF A9 D7 B9  "...x....:.0....
    			0010: FB E4 32 3D                                        ..2=
    	]
    ]
    
    是否信任此证书? [否]:  y
    证书已添加到密钥库中	
    

    可能会出现错误

    keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect
    

    可以通过查看路径设置是否正确或查看jdk下security目录下的cacerts文件是否存在,如果存在可以通过rename的方式,将其改名。

    配置服务器

    打开"./tomcat/node-c/conf/server.xml"

    将原来被注释掉的SSL相关配置修改成:

    <Connector port="8433" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="/Users/Richard/Documents/Dev/servers/cluster/tomcat/keys/hoaukey" keystorePass="Hoau123"/>
    
    *注意,此处我们将SSL的端口从"8443"修改成了"8433"

    配置系统环境

    在创建证书证书的时候,我们指定的服务器域名为sso.hoau.com。为了能使本地浏览器
    通过域名能正常访问,我们需要修改增加host配置

    127.0.0.1  sso.hoau.com
    

    运行

    执行命令

    :node-c Richard$ ./bin/startup.sh
    

    提示错误

    -bash: ./bin/startup.sh: Permission denied
    

    运行命令

    sudo chmod +x ./bin/*.sh
    

    再启动

    $ ./bin/startup.sh
    

    停止命令为

    $ ./bin/startup.sh
    
    • *此时可能会在catalina的log中出现如下错误

        10-Dec-2015 11:03:35.473 SEVERE [main] org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore Failed to load keystore type JKS with path /Users/Richard/.keystore due to /Users/Richard/.keystore (No such file or directory)
        java.io.FileNotFoundException: /Users/Richard/.keystore (No such file or directory)
        	at java.io.FileInputStream.open0(Native Method)
        	at java.io.FileInputStream.open(FileInputStream.java:195)
        	at java.io.FileInputStream.<init>(FileInputStream.java:138)
        	at java.io.FileInputStream.<init>(FileInputStream.java:93)
      

      可能的原因有两个

      1. 注意SSL配置中的关键字key值都是区分大小写的,比如"keystoreFile"和"keystorePass" 。
      2. 注意确认"keystoreFile"和"keystorePass"相关参数路径的正确性。

    测试

    用浏览器访问https://sso.hoau.com:8433,会出现结果:

    结束

  • 相关阅读:
    Blank page instead of the SharePoint Central Administration site
    BizTalk 2010 BAM Configure
    Use ODBA with Visio 2007
    Handling SOAP Exceptions in BizTalk Orchestrations
    BizTalk与WebMethods之间的EDI交换
    Append messages in BizTalk
    FTP protocol commands
    Using Dynamic Maps in BizTalk(From CodeProject)
    Synchronous To Asynchronous Flows Without An Orchestration的简单实现
    WSE3 and "Action for ultimate recipient is required but not present in the message."
  • 原文地址:https://www.cnblogs.com/richaaaard/p/5035812.html
Copyright © 2011-2022 走看看