第一步:为服务器生成证书
使用keytool 为 Tomcat 生成证书,假定目标机器的域名是“ localhost ”, keystore 文件存放在“ C:\tomcat.keystore ”,口令为“ password ”,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg RSA -keysize 2048 -validity 3650 -keystore c:\tomcat.jks -dname "CN=221.133.237.236,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass alipay2POS -keypass alipay2POS
生成csr文件用于提交CA认证生成证书使用
keytool -certReq -alias tomcat -keystore c:\tomcat.jks -file c:\mm.csr
这个tomcat.cer是为了解决不信任时要导入的
keytool -export -alias tomcat -keystore c:\tomcat.keystore -file c:\tomcat.cer -storepass password
查看jks
keytool -list -v -file c:\tomcat.jks
keytool -list -v -keystore keystore
第四步:配置Tomcat 服务器
打开Tomcat 根目录下的 /conf/server.xml ,找到如下配置段,修改如下:
1.<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
2.
3. maxThreads="150" scheme="https" secure="true"
4.
5. clientAuth="false" sslProtocol="TLS"
6.
7. keystoreFile="C:/tomcat.keystore" keystorePass="password" >
特别需要注意的是:protocol里面的值.如果用http 1.1,那么https的链接就会打不开.这也是我后期订正的
应用程序的web.xml 可以加上这句话: 具体web系统
1.<login-config>
2.
3.<!-- Authorization setting for SSL -->
4.
5.<auth-method>CLIENT-CERT</auth-method>
6.
7.<realm-name>Client Cert Users-only Area</realm-name>
8.
9.</login-config>
10.
11.<security-constraint>
12.
13.<!-- Authorization setting for SSL -->
14.
15.<web-resource-collection >
16.
17.<web-resource-name >SSL</web-resource-name>
18.
19.<url-pattern>/*</url-pattern>
20.
21.</web-resource-collection>
22.
23.<user-data-constraint>
24.
25.<transport-guarantee>CONFIDENTIAL</transport-guarantee>
26.
27.</user-data-constraint>
28.
29.</security-constraint>
到这里启动tomcat,输入 https://localhost:8443/
这时再打开会弹出一个提示框:证书不可信任,有一个警告,说什么需要机构颁发。
这时再双击第一步生成的tomcat.cer。一直下一步,最后选“是”。
导入后,再输入地址就不是提示了。直接转向tomcat的猫页,说明成功了。
这时候如果用程序去访问可能还会抛证书不信任的异常(sun.security.validator.ValidatorException: PKIX path building failed... ),需要将生成的证书(tomcat.cer )
导入到jdk中
keytool -import -alias tomcatsso -file "c:\tomcat.cer" -keystore "D:\java\jdk1.6.0_11\jre\lib\security\cacerts" -storepass changeit
其中changeit是jre默认的密码。
如果抛 No subject alternative names present 请在生成keystore 注意CN必须要为域名(或机器名称)例如 localhost 不能为IP
如果抛 No name matching localhost found 表示你生成keystore CN的名称和你访问的名称不一致
分享到:
相关推荐
标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...
总结一下,配置Tomcat和Nginx的单向HTTPS涉及的主要步骤包括:生成密钥库,创建或导入证书,可能需要进行格式转换,以及在服务器配置文件中设置SSL参数。这个过程对于保障Web服务的安全性至关重要,因为HTTPS能有效...
Tomcat配置SSL单向认证时,主要步骤包括: 1. 获取并安装SSL证书:可以是自签名证书或者由权威CA(证书颁发机构)签发的证书。 2. 在`server.xml`配置文件中配置`<Connector>`元素,指定`scheme="https"`, `secure=...
**标签 "源码 工具"** 暗示这篇博文可能包含了使用keytool和Tomcat配置的源代码示例,以及如何操作这些工具的详细步骤。 综上所述,这个主题涵盖了Java安全、SSL/TLS协议、keytool的使用方法、Tomcat的SSL配置以及...
然后为客户端生成证书,并使用服务器密钥库中的主密码将客户端证书导入到服务器的密钥库中,完成双向认证的配置。 以上步骤完成后,就完成了Tomcat服务器的HTTPS双向认证配置。在实际应用中,还应该注意对生成的...
4. **修改Tomcat配置** 需要修改Tomcat的`server.xml`配置文件,开启SSL支持并指定KeyStore文件和密码。找到`<Connector>`标签,取消注释并修改相关属性,例如: ```xml maxThreads="150" scheme=...
标题中的“Apache 2 mod_jk tomcat 5 双向SSL认证 传递证书信息”涉及到的是在Web服务器(Apache)与应用服务器(Tomcat)之间建立安全通信的配置。这个配置主要是为了实现更高级别的安全性,即双方都需要验证彼此的...
本文将详细介绍如何在 Tomcat 中实现 SSL 双向认证,包括使用 JDK 的 keytool 工具创建证书、配置 Tomcat 服务器和客户端证书等。 一、SSL 双向认证的重要性 在 Web 应用程序中,安全性是非常重要的,特别是在涉及...
7. **Tomcat配置**:在Java应用服务器Tomcat上配置SSL,通常会用到keytool工具。keytool是JDK自带的证书管理工具,可以用来生成和管理密钥对,以及导入和导出证书。 8. **Apache和Nginx配置**:Apache和Nginx都是...
总结起来,配置WEB服务器上的HTTPS环境涉及生成服务器证书、配置Tomcat的server.xml文件,以及可能的HTTP到HTTPS的自动跳转。这些步骤确保了Web应用的数据传输安全,增强了用户隐私保护,符合现代网络服务的基本安全...
6. **Tomcat配置HTTPS**:要在Tomcat服务器上启用HTTPS,需要生成服务器证书并配置Tomcat。这通常涉及到使用`keytool`工具生成本地密钥库(keystore),包含服务器的公钥和私钥。然后在Tomcat的`server.xml`配置文件...
本教程将详细讲解如何在Tomcat中利用Java自带的keytool工具来生成并配置数字证书,实现双向验证操作。 首先,我们要理解什么是双向认证。在单向认证中,服务器会向客户端展示其数字证书,证明自己的身份,而客户端...
2. **导入证书到Keystore**:将生成的自签名证书导入到Tomcat的keystore中。 3. **配置Tomcat服务器**:编辑Tomcat的`server.xml`配置文件,启用HTTPS监听端口。 4. **测试HTTPS连接**:启动Tomcat服务器并通过...
本文详细介绍了如何使用`AndroidHttpClient`访问`Tomcat`双向SSL验证服务器的过程,包括证书生成、Tomcat配置、客户端验证等多个方面。通过对这些步骤的详细解析,不仅解决了实际项目中的问题,也为读者提供了一个...
### 服务器证书安装配置指南 #### 一、生成证书请求 **1. 安装 JDK** 为了能够顺利地安装和配置服务器证书,首先需要确保环境中已经安装了Java Development Kit (JDK)。JDK 是 Java 开发工具包,是开发 Java 应用...
其中,clientAuth 指定是否需要验证客户端证书,如果该设置为“false”,则为单向 SSL 验证,SSL 配置可到此结束。如果 clientAuth 设置为“true”,表示强制双向 SSL 验证,必须验证客户端证书。如果 clientAuth ...