Tomcat (1) —— Mac下配置Tomcat Https/SSL
Tomcat (1) —— Mac下配置Tomcat Https/SSL
tomcat版本: tomcat-8.0.29
jdk版本: jdk1.8.0_65
参考来源:
【高可用HA】Apache (2) —— Mac下安装多个Apache Tomcat实例
安装与配置
首先
参照博文配置好单个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)
可能的原因有两个
- 注意SSL配置中的关键字key值都是区分大小写的,比如"keystoreFile"和"keystorePass" 。
- 注意确认"keystoreFile"和"keystorePass"相关参数路径的正确性。
测试
用浏览器访问https://sso.hoau.com:8433,会出现结果:

结束
Tomcat (1) —— Mac下配置Tomcat Https/SSL的更多相关文章
- mac 下配置tomcat
下面就是一些简单的步骤,帮你把Tomcat7安装在你的Mac上. 下载一个 二进制包: apache-tomcat-7.0.27.tar.gz ,可以在Apache的官方网站找到. 双击解压在你的下载 ...
- JavaWeb学习笔记(一)Mac 下配置Tomcat环境
最近,想鼓捣与服务器端的交互,只能自己搭建环境了. 上个周一鼓捣了一点,周五再鼓捣,发现忘得已经差不多了.好记性不如烂笔头,还是记录下来比较好. 首先,去Tomcat的官网,下载Mac版的Tomca ...
- mac下 配置tomcat
第一步: 1.打开你的终端:然后输入 pico .bash_profile 回车 第二步: 2. 然后添加你tomcat放入的路径的path 编辑完后,control+x (保存) 继 ...
- iOS-Mac配置Tomcat【Mac环境配置Tomcat】
Tomcat配置 1.官网下载Tomcat配置包:http://tomcat.apache.org/download-70.cgi 2.下载之后,将解压后的的整个文件夹重新命名:ApacheTomca ...
- CAS (1) —— Mac下配置CAS到Tomcat(服务端)(转)
tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 cas版本: cas4.1.2cas-client-3.4.1 参考来源: CAS实现单点登录(SSO)经典完整教 ...
- CAS (1) —— Mac下配置CAS到Tomcat(服务端)
CAS (1) -- Mac下配置CAS到Tomcat(服务端) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 cas版本: cas4.1.2 cas-clie ...
- CAS (3) —— Mac下配置CAS客户端经代理访问Tomcat CAS
CAS (3) -- Mac下配置CAS客户端经代理访问Tomcat CAS tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9 ...
- CAS (2) —— Mac下配置CAS到Tomcat(客户端)
CAS (2) -- Mac下配置CAS到Tomcat(客户端) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 cas版本: cas4.1.2 cas-clie ...
- CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)
CAS (8) -- Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端) jboss版本: jboss-eap-6.4-CVE-2015-7501 jdk版本 ...
随机推荐
- VC++6.0 IDE的工程用Code::Blocks来打开、编译、调试终极配置方案
本篇文章转自 CSDN blog,转载请注明出处! 原文地址: http://blog.csdn.net/liquanhai/article/details/6618300 引子:竟然可以用Code: ...
- vsftp添加用户及测试
上一篇我们讲了vsftp安装以及配置,这篇我们讲下如何添加用户,然后我们测试一下,看看是否成功. 首先说下添加用户,如图执行命令即可: 这里简单解释一下:第一条命令是添加用户,第二条命令是设置用户密码 ...
- Linux命令-防火墙命令:iptables
iptables详解--转 查看防火墙设置: 第一种方式: cat /etc/sysconfig/iptables 第二种方式: iptables -L -n -v 设置防火墙: 第一种方式: ipt ...
- 记一次400错误引发的血案(URL中特殊符号的转义/400 bad request错误)
django+nginx+uwsgi部署的站点访问某个URL时发生了400 bad request的错误,而使用django自带的开发版的web server时没有遇到此问题.初步判断是nginx或u ...
- Linux下发布javaWeb项目,配置环境变量,tomcat,和安装mysql数据库
如果不懂,可以联系微博本人:QQ:3111901846 (原创) 1.配置java中jdk 注意一切操作,都是在root这个目录下进行的,不要选择其他目录,不然会出现一些小问题的 第一步: 你需要一个 ...
- 目的可疑,但方法非常值得学习的书——leo鉴书56
书中提到写作手法绝对值得学习,为此能够打四颗星. 作者是个买直销产品的.靠写字让别人买自己的东西.当中特别强调了卖的多是太空时代的产品,意思就是读者非常可能并不须要,多半是被眼花缭乱的广告词儿骗了 ...
- spring mvc get方式乱码
使用spring get方式,向后台传递参数的时候,出现乱码,网上搜索了好久,最后发现原因是server.xml中默认的配置有问题,修改如下就正确了,图片: 文本信息: <Connect ...
- WPF绑定时要绑定属性,不要绑定字段
如题(就是加get;set;),绑定属性不出东西,不知道为什么...
- [Jobdu] 题目1545:奇怪的连通图
题目描述: 已知一个无向带权图,求最小整数k.使仅使用权值小于等于k的边,节点1可以与节点n连通. 输入: 输入包含多组测试用例,每组测试用例的开头为一个整数n(1 <= n <= 100 ...
- Qt多个信号连接到一个槽,在槽中识别信号的发送者方法(实验 可行)
Qt是通过信号和槽的机制进行事件传递的,当有多个不同类型.或相同类型的物件的发送信号都通过一个槽来处理的时候,需要在槽中识别出这些信号然后做相应的处理. 例如: 在一个界面中有16个按钮(QPushB ...