Glassfish4.1和Tomcat配置Https访问
2015-12-31 20:14
591 查看
一、Glassfish4.1配置Https
1. 证书配置
切换到目录“/root/glassfish-4.1/glassfish/domains/domain1/config”进行如下操作,注意上述目录需根据自己的Glassfish安装目录调整。1、首先删除系统默认的s1as(注意s1as中间的是数字1而不是字母l;以下密码统一为changeit )
keytool -delete -alias s1as -keystore keystore.jks -storepass changeit
2、生成新的keystore.jks
keytool -genkeypair -keyalg RSA -keysize 1024 -keystore keystore.jks -validity 18760 -alias s1as
运行上述命令后,需要输入一系列数据,如下图所示。特别注意的是“first and last name”(等同于common name等同于CN)必须是自己的域名,否则在java client发送请求时会出错,详见Java 使用访问https站点(自定义证书) 。
3、生成需要CA认证的CSR文件(非必须)
keytool -certreq -alias s1as -file s1as.csr -keystore keystore.jks -storepass changeit
4、生成证书,如果使用第三方的CA认证这一步不需操作。
keytool -export -alias s1as -keystore keystore.jks -file s1as.cer -storepass changeit
5、删除cacerts.jks,通过证书生成新的cacerts.jks
keytool -import -v -trustcacerts -alias s1as -file s1as.cer -keystore cacerts.jks -keypass changeit
欲了解上述步骤的详情,可参照官网文档GlassFish Server Open Source Edition Security Guide 的“To Generate a Certificate by Using keytool”小节进行。
2. Glassfish管理端配置(非必须)
在Glassfish的Web终端,找到Configuration ➤ Network Config- ➤ Network Listeners ➤ http-listener-2,选择SSL。输入步骤1得到的证书alias及keystore名称即可。3. 重启Glassfish
进行上述配置,重启Glassfish并进入Web控制端后,即使输入正确的密码也不能进入。按Glassfish4.1安装及配置–远程访问出错的解决办法操作后再次重启即可。二、Tomcat配置Https
相比较与Glassfish,Tomcat配置Https要简单点,原理也大致相同。1. 生成证书
keytool -genkey -v -alias server -keyalg RSA -keystore test.keystore -storepass 123456
同样地,CN要配置成自己的域名。
2. 配置tomcat/conf/server.xml
打开注释或加入以下配置 ,<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" minSpareThreads="5" maxSpareThreads="75" enableLookups="true" disableUploadTimeout="true" acceptCount="100" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS" keystoreFile="D:/lib/server.keystore" keystorePass="123456"/>
一般需要增加keystoreFile和keystorePass两个属性,指定你存放证书的路径(如:keystoreFile=”/home/asin/test.keystore”)和刚才设置的密码(如:keystorePass=”123456”)。关于其它各种选项的详细信息,可查阅Server Configuration Reference。
3. 重启tomcat
重启后,通过“https://localhost:8443”访问服务端。三、配置应用使用 SSL
使用上述方式对Glassfish或Tomcat进行Https访问的配置以后,此时客户端访问应用既可以采用Https方式,也可使用Http方式,若想只使用Https方式,可做如下设置:打开应用的 web.xml 文件,增加配置如下:
<security-constraint> <web-resource-collection> <web-resource-name>securedapp</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
将 URL 映射设为 /* ,表示所有应用都要求 HTTPS 访问,而 transport-guarantee 标签设置为 CONFIDENTIAL 以便使应用支持 SSL。
进行以上设置,若仍使用命令
curl http://test.com:8080/App-Https/test[/code]采用http的方式访问,会报错如下,意为所请求资源已被重定向到” href="https://test.com:8181/App-Https/test" target=_blank>https://test.com:8181/App-Https/test“。HTTP/1.1 302 Found Server: GlassFish Server Open Source Edition 4.1 X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1 Java/Oracle Corporation/1.8) Location: https://test.com:8181/App-Https/test Content-Language: en-US
如果希望关闭 SSL ,只需将 CONFIDENTIAL 改为 NONE 即可。
若想了解上述步骤的详情,请查看官网文档SSL/TLS Configuration HOW-TO。参考文章
1.GlassFish3 配置https登录
2.Java安全通信:HTTPS与SSL
3.数字证书及安全加密(一)数字证书基本知识
4.数字证书及安全加密(二)tomcat单向SSL验证及服务调用
5.数字证书及安全加密(三)tomcat双向SSL验证及服务调用
6.数字证书及安全加密(四)使用CA签发的证书并验证证书链
相关文章推荐
- Codevs_P1227 方格取数2(拆点网络流+最小费用流)
- 运输层—TCP的连接管理
- 深入解析开源项目之Volley框架
- https证书申请
- java 下载本地文件 下载网络文件
- 深信度网络
- HttpClient4.4.1模拟登录知乎
- TCP连接检测机制
- MATLAB复杂网络工具箱——matgraph基本操作总结
- burp suite 抓 https
- LINUX-网络-ifconfig
- 从朴素贝叶斯分类器到贝叶斯网络(上)
- lighttpd 配置
- 手机网络
- getResponseCode获取URL响应状态码 HTTP状态返回码
- C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨
- httpRequest.CookieContainer= cookie 与 httpRequest.Headers.Add("Cookie", cookie)
- 网络编程中的关键问题总结
- Android Okhttp之Okio解析
- iOS - 检测网络状态: Reachability和非Reachability