`

tomcat配置https

 
阅读更多

java平台的keystore是对https证书的一种包装,配置方式和http服务器的证书配置略有不同
<!--more-->

最近和一个第三方系统对接,需要安全认证。安全认证有2种方式,一种是在应用层实现,比如通过ws-security或者在报文头增加一些字段等;另外一种是借助https,对应用层透明。本次对接采用的是https的方案

根据部署方式的不同,具体的实现也有区别。一般在tomcat前面会有一个http服务器如nginx来接收https请求并转发,那么需要在nginx上配置证书。但是这次对方是直接用tomcat响应web请求,所以需要在tomcat里配置

一开始我尝试用openssl做了自签名的证书,然后导入keystore,结果并不成功,用chrome访问始终提示以下错误:

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

搜索了一番也没有找到解决办法。最后只好改成用jdk提供的keytool工具直接制作keystore,然后从keystore导出证书,以下是具体的命令:

生成keystore

keytool -genkey -alias aisino -keyalg RSA -keysize 2048 -validity 3650 -keystore aisino.keystore

keytool -list -v -keystore aisino.keystore

第一个命令是生成keystore,第二个命令是查看生成的结果

然后在tomcat中做如下配置:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="200" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="aisino.keystore" keystorePass="xxxxxx" />

不过这是Http11NioProtocol风格的配置,如果用的是Http11AprProtocol,则应该使用openssl风格的配置,见其他文档

经过上述配置之后,就可以在浏览器中通过https协议访问应用服务器了

导出为证书

接下来客户端可能需要对应的证书,比如需要在发送https请求时用证书加密,因此需要将刚才生成的keystore信息导出为标准的证书。通过以下命令:

keytool -export -alias aisino -keystore aisino.keystore -file ./aisino.cer

keytool -printcert -file aisino.cer

第一个命令是导出证书,第二个命令是查看证书的内容。接下来只要把导出的证书给到客户端就可以了

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论
2 楼 iridiumcao 2016-04-14  
非常感谢!

我按的方法,重新生成和导入了key,一切正常了。

另外,我已保存了你的这篇文章。
1 楼 iridiumcao 2016-04-14  
非常感谢!

我按找你的方法,重新生成和导入了key,一切正常了。

相关推荐

    Tomcat配置HTTPS证书认证

    要为Tomcat配置HTTPS,我们主要需要以下几步: 1. **生成或获取SSL证书**: - 可以使用开源工具如OpenSSL自签发一个证书,适合测试环境。 - 对于生产环境,通常需要从权威的证书颁发机构(CA)购买一个正式的SSL...

    springboot内置tomcat与外部tomcat配置https访问及http自动转向https

    ### Spring Boot 内置 Tomcat 配置 HTTPS 及 HTTP 自动转向 HTTPS #### 一、Spring Boot 内置 Tomcat 配置 HTTPS 访问 为了实现 Spring Boot 应用程序通过内置 Tomcat 服务器支持 HTTPS 访问,我们需要进行以下几...

    tomcat 配置https

    tomcat 配置https 详情, tomcat 配置http 强制跳转到https

    https原理及tomcat配置https方法

    HTTPS 原理及 Tomcat 配置 HTTPS 方法 HTTPS(Hypertext Transfer Protocol Secure)是一种基于 HTTP 协议的安全协议,通过使用 SSL/TLS 协议对数据进行加密,以确保数据的安全传输。下面将详细介绍 HTTPS 的原理...

    keytool+tomcat配置HTTPS双向证书认证

    Keytool+Tomcat配置HTTPS双向证书认证 Keytool 是 Java 中的一个命令行工具,用于生成和管理数字证书。Tomcat 是一个流行的 Web 服务器,可以使用 SSL/TLS 加密来保护数据传输。下面是使用 Keytool 生成证书和配置 ...

    tomcat配置https单项认证

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

    tomcat配置https说明文档

    ### Tomcat配置HTTPS详解 #### 一、生成服务器证书 为了确保Tomcat服务器能够支持HTTPS协议,首先需要为服务器生成一个数字证书。这一步非常重要,因为它涉及到数据加密和身份验证等安全机制。 ##### 1.1 生成...

    linux tomcat配置https的方法

    ### Linux Tomcat 配置 HTTPS 的方法 在现代网络应用中,HTTPS 协议因其安全性而成为标配。本文将详细介绍如何在 Linux 系统上为 Apache Tomcat 配置 HTTPS,确保 Web 应用的数据传输安全。 #### 一、创建 ...

    tomcat支持https配置

    4. **修改Tomcat配置**: - 打开`conf/server.xml`文件,找到`&lt;Connector&gt;`元素,配置SSL连接器。 - 添加以下属性: - `protocol="HTTP/1.1"`:指定连接器协议。 - `scheme="https"`:指定协议类型。 - `secure...

    keytool+tomcat配置HTTPS双向证书认证结合web实例

    ### keytool+Tomcat配置HTTPS双向证书认证结合Web实例 #### 概述 本文将详细介绍如何使用`keytool`工具配合Tomcat服务器实现HTTPS双向证书认证,并通过具体示例加以说明。该方案主要应用于需要对访问来源进行严格...

    tomcat配置https所需要的附件

    本篇将详细讲解如何在Tomcat中配置HTTPS,以及涉及的相关附件。 首先,我们需要理解HTTPS的基本原理。HTTPS(HyperText Transfer Protocol Secure)是一种通过SSL/TLS协议加密的HTTP协议,能够提供数据的加密、...

    Tomcat配置https并访问http自动跳转至https

    Apache Tomcat是一个广泛使用的开源Web服务器和Servlet容器,下面将详细介绍如何在Tomcat中配置HTTPS,并实现当用户通过HTTP协议访问时,自动跳转到HTTPS协议。 ### 配置Tomcat的server.xml文件 配置HTTPS涉及到...

Global site tag (gtag.js) - Google Analytics