单向认证:客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到 客户端,客户端用服务器发送来的公钥对数据解密,然后在用传到客户端的服务器公钥对数据加密传给服务器端,服务器用私钥对数据进行解密,这就完成了客户端 和服务器之间通信的安全问题,但是单向认证没有验证客户端的合法性。
1、使用jdk(本例使用1.7.0_67)工具生成证书库文件;
keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore "F:\cert\tomcat.keystore"
如图所示:
密码为123456,www.newbie.com为随意取的,仅用作测试,使用本地host将此域名转发。
执行完成后将看到f:\cert\目录中生成了证书库文件tomcat.keystore。
2、打开tomcat(本例使用apache-tomcat-7.0.55)中的配置文件/conf/server.xml,为避免录入端口修改默认值,修改如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改为
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
-----------------------------------
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
修改为(第一步生成的库文件及密码)
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="F:\cert\tomcat.keystore" keystorePass="123456" />
-----------------------------------
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改为
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
到此,server.xml配置完成。
3、为方便测试配置本地host(127.0.0.1 www.newbie.com),启动tomcat,发现http://www.newbie.com/可访问,https://www.newbie.com/提示证书阻止,不过可继续浏览打开,若用户要直接访问可直接安装此证书到“受信任的根证书颁发机构”。
4、屏蔽http请求,将http请求自动转发到https上,打开tomcat配置文件/conf/web.xml在</web-app>前添加如下代码,重启tomcat,可发现http请求自动转到https上了。
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
5、(题外)若java客户端使用httpclient请求,需将证书导入jdk中。
使用以下命令导出cer证书
keytool -export -alias tomcat -keystore "F:\cert\tomcat.keystore" -storepass 123456 -rfc -file "F:\cert\tomcat.cer"
再将导出的证书导入需访问站点的客户端jdk中,命令
keytool -import -v -trustcacerts -alias tomcat -file "F:\cert\tomcat.cer" -keystore "D:\jdk1.7.0_67_x64\jre\lib\security\cacerts"
jdk证书库默认密码应为changeit,确认导入即可,此时httpclient客户端可使用https访问。
- 大小: 12.9 KB
分享到:
相关推荐
Tomcat配置SSL双向认证简单实例
Tomcat配置SSL全过程
本文档基于JDK+apache-tomcat运行环境进行客户端和服务器端https配置,即SSL双向认证配置
tomcat下配置ssl双向认证介绍,有具体的步骤截图。
解决tomcat配置ssl错误的解决办法,不一定有用,只是一个备份。不需要分就是因为不一定能帮到谁。
本资源是一个 CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证配置示例。详细如何配置请参考博客《图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证》,地址是:...
有关于Tomcat配置ssl证书和TOMCAT的根目录修改。然后可以用https+域名直接访问工程。。。。。。。。。。。。。。。。。。。
apache Tomcat配置SSL(https)步骤
Tomcat6配置使用SSL双向认证
Tomcat5.5配置SSL Tomcat5.5配置SSL Tomcat5.5配置SSL Tomcat5.5配置SSL
tomcat 配置ssl加密通讯tomcat 配置ssl加密通讯tomcat 配置ssl加密通讯
Tomcat配置SSL指导:1 生成Server端安全证书;2 添加Server端安全证书;3 配置需要强制使用SSL的目录或文件;
nginx和tomcat配置SSL和负载均衡配置,
关于tomcat 的ssl配置,
Tomcat 配置SSL完美 https可以正常使用 小程序调用Tomcat 配置SSL完美 https可以正常使用 小程序调用Tomcat 配置SSL完美 https可以正常使用 小程序调用
说明tomcat如何配置https单向加密,如何使用jdk提供的keytool建立服务器证书
apache和tomcat整合配置 ssl
很多人经常在网上问怎么在TOMCAT下配置SSL,终于在网上找到一个可以用的教程,与大家共享一下。
tomcat配置双向SSL认证[整理].pdf