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>
分享到:
相关推荐
springboot内置tomcat与外部tomcat配置https访问及http自动转向https
tomcat 配置https 详情, tomcat 配置http 强制跳转到https
Tocmat下的HTTPS认证,折腾了一天了,终于弄成了,记录下!
tomcat配置https双向认证文档
tomcat配置https说明文档
https原理及tomcat配置https方法;SSL加密传输;请求路径https://...;客户端需安装证书...
说明tomcat如何配置https单向加密,如何使用jdk提供的keytool建立服务器证书
tomcat需要配置https访问的时候需要安装的安装包,具体配置内容可以参考我的博客
全套tomcat配置https协议工具,包括生成证书,配置端口,强制https请求,傻瓜版本,一看就会。
利用tomcat服务器配置https双向认证
主要介绍了linux tomcat配置https的方法,需要的朋友可以参考下
NULL 博文链接:https://virnos.iteye.com/blog/1627720
Tomcat 安装SSL证书,Tomcat安装https证书 简单三步教您配置Tomcat 安装SSL证书 压缩包内有 server.xml 、web.xml 示例文件,一看就会,一做就成!
该文档介绍了如何在tomcat中配置https协议,希望能够给需要的人一定的帮助。
主要介绍了Tomcat配置https并访问http自动跳转至https的相关资料,需要的朋友可以参考下