`
随心而行
  • 浏览: 13852 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

tomcat配置ssl单向认证

 
阅读更多
单向认证:客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到 客户端,客户端用服务器发送来的公钥对数据解密,然后在用传到客户端的服务器公钥对数据加密传给服务器端,服务器用私钥对数据进行解密,这就完成了客户端 和服务器之间通信的安全问题,但是单向认证没有验证客户端的合法性。

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单向认证时,主要步骤包括: 1. 获取并安装SSL证书:可以是自签名证书或者由权威CA(证书颁发机构)签发的证书。 2. 在`server.xml`配置文件中配置`&lt;Connector&gt;`元素,指定`scheme="https"`, `secure=...

    tomcat实现SSL双向认证

    客户端认证可以设置为 true、false 或 want,分别表示强制双向认证、单向认证和可选认证。 四、客户端证书的配置 客户端证书的配置需要将客户端证书导入到浏览器中。可以使用 keytool 工具生成客户端证书,并将其...

    利用tomcat服务器配置https双向认证、https单向认证-ssl、tls

    例如,对于单向认证,可以添加如下配置: ```xml SSLEnabled="true" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" ...

    tomcat配置https单项认证

    标题中的“Tomcat配置HTTPS单项认证”涉及到的是在Apache Tomcat服务器上设置安全套接层(SSL)以实现HTTPS通信的过程,尤其是关于单向认证(也称为客户端认证)的配置。在互联网上,HTTPS是HTTP协议的安全版本,...

    keytool+tomcat 单向/双向认证的配置

    **单向认证(Server Authentication)**: 在此模式下,客户端(如浏览器)验证服务器的身份。服务器需要一个由受信任的证书颁发机构(CA)签名的数字证书。keytool可以生成自签名证书或导入已签名的证书到keystore...

    Tomcat_SSL配置[归类].pdf

    不同于传统的单向认证,双向认证不仅要求服务器向客户端证明自己的身份,同时也要求客户端向服务器证明其身份。这种模式在一些高安全性的应用场景,如金融、医疗等领域中尤为常见。 1. **生成服务器证书** 使用JDK...

    Apache 2 mod_jk tomcat 5 双向SSL认证 传递证书信息

    标题中的“Apache 2 mod_jk tomcat 5 双向SSL认证 传递证书信息”涉及到的是在Web服务器(Apache)与应用服务器(Tomcat)之间建立安全通信的配置。这个配置主要是为了实现更高级别的安全性,即双方都需要验证彼此的...

    利用keytools为tomcat 7配置ssl双向认证的方法

    在SSL的认证方式中,分为单向认证和双向认证。单向认证主要是服务器端向客户端提供证书以验证自身身份,而双向认证则在单向认证的基础上,还要求客户端向服务器提供证书以验证客户端的身份。这种方式增强了安全性,...

    AndroidHttpClient访问Tomcat双向SSL验证服务器.pdf

    本文详细介绍了如何使用`AndroidHttpClient`访问`Tomcat`双向SSL验证服务器的过程,包括证书生成、Tomcat配置、客户端验证等多个方面。通过对这些步骤的详细解析,不仅解决了实际项目中的问题,也为读者提供了一个...

    tomcat和nginx配置单向https.docx

    总结一下,配置Tomcat和Nginx的单向HTTPS涉及的主要步骤包括:生成密钥库,创建或导入证书,可能需要进行格式转换,以及在服务器配置文件中设置SSL参数。这个过程对于保障Web服务的安全性至关重要,因为HTTPS能有效...

    ssl双向认证密钥

    6. **SSL握手过程**:在SSL双向认证中,握手过程比单向认证复杂,包括了服务器发送其证书,客户端验证服务器证书并发送自己的证书,服务器验证客户端证书等步骤。 7. **安全性提升**:双向认证能有效防止中间人攻击...

    国密SSL浏览器访问国密SSL规范Tomcat服务器的完整方法(附演示DEMO访问方法)

    3. 使用新安装的国密浏览器访问 https://127.0.0.1 地址,浏览器通过GMSSL_ECC_WITH_SM4_CBC_SM3国密密码套件与TOMCAT服务器建立国密SSL规范的单向加密通道,并打开指定网页 以上步骤经过实际测试 感谢大宝CA...

    为API设置安全性的教程,使用单向认证与TLSSSL和基于java的web服务器和具有Spring Boot的客户端进.zip

    总结来说,这个教程将涵盖使用TLS/SSL和单向认证来增强API安全性,以及如何在Java Web服务器和Spring Boot应用中配置这些设置。通过遵循提供的指南,你可以确保您的API通信得到充分保护,减少潜在的安全风险。

    opesnssl证书配置和使用1

    4. **SSL双向/单向认证**:双向认证要求客户端和服务器都需验证对方的身份,而单向认证只需服务器验证客户端。openssl可以通过不同的命令行选项来实现这两种认证模式。 5. **导入证书**:生成的证书需要导入到...

    Android调用大宝CA国密SSL密码套件(0.99版本)访问国密SSL安全服务的示例代码

    使用方法见:https://blog.csdn.net/upset_ming/article/details/89048916 1. 支持国密SSL单向认证和双向认证 2. 获取服务端的国密数字证书 3. 适用于Android 7.0(API 24)及以上

    在tomcat中使用keytool实现双向验证操作视频

    在单向认证中,服务器会向客户端展示其数字证书,证明自己的身份,而客户端通常不需验证身份。而在双向认证中,不仅服务器要验证客户端的身份,客户端也要验证服务器的身份,这提供了更高的安全级别,防止中间人攻击...

Global site tag (gtag.js) - Google Analytics