https单向/双向认证及tomcat配置https方法

在tomcat上配置双向的ssl 背景 项目开发完成后一般会进行高危漏洞检测,检测时出现 步骤 整体步骤 第一步:为服务器生成证书 keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\apache-tomcat-8.5.35\keystores\tomcat.keystore -validity 36500 第二步:为客户端生成证书 keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D 阅读详情


https单向/双向认证及tomcat配置https方法

URL:http://itindex.net/detail/49585-https-%E8%AE%A4%E8%AF%81-tomcat

发表时间:2014-05-14 14:38 | 作者:liuxiaoling


https单向/双向认证及tomcat配置https方法
tomcat6配置:
1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源
2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址
如果只是加密,单向就行
如果想要用系统的人没有证书就访问不了系统的话,就采用双向

命令格式:
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -dname "CN=localhost, OU=Organization, O=Company Name, L=City, S=State, C=US" -validity 365 -keystore  e:/tomcat.keystore

单向配置:
第一步:为服务器生成证书
使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“C:\OctopusStoreKey\SP2014.keystore”,口令为“123456”,使用如下命令生成:
keytool -genkey -v -alias SPClient -keyalg RSA -validity 3650 -keystore c:\OctopusStoreKey\SP2014.keystore
或
keytool -genkey -v -alias SPClient -keyalg RSA -validity 3650 -keystore c:\OctopusStoreKey\SP2014.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass 123456 -keypass 123456

这个SP2014CA.cer是为了解决不信任时要导入的
keytool -genkey -v -alias SPClient -keyalg RSA -validity 3650 -keystore c:\OctopusStoreKey\SP2014.keystore

打开Tomcat 根目录下的 /conf/server.xml ,找到如下配置段,修改如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"  
               maxThreads="150" scheme="https" secure="true"  
    clientAuth="false" sslProtocol="TLS"  
    keystoreFile="c:\OctopusStoreKey\SP2014.keystore" keystorePass="123456" >

注意:protocol里面的值,如果用http 1.1,那么https的链接就会打不开
需要在应用程序的web.xml可以加上这句话

<login-config>
	<!-- Authorization setting for SSL -->
	<auth-method>CLIENT-CERT</auth-method>
	<realm-name>Client Cert Users-only Area</realm-name>
</login-config>

<security-constraint>
	<!-- Authorization setting for SSL -->
	<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>


然后启动tomcat,输入 https://localhost:8443/
这时打开会弹出一个提示框:证书不可信任,有一个警告,说什么需要机构颁发。直接导入SP2014.keystore即可

双向配置:
第一步:为服务器生成证书
使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“C:\OctopusStoreKey\SP2014.keystore”,口令为“123456”,使用如下命令生成:
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -dname "CN=localhost, OU=Organization, O=Company Name, L=City, S=State, C=US" -validity 365 -keystore  e:/tomcat.keystore
或
keytool -genkey -v -alias SPClient -keyalg RSA -validity 3650 -keystore c:\OctopusStoreKey\SP2014.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass 123456 -keypass 123456

第二步:为客户端生成证书
下一步是为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE 和 Firefox ,证书格式应该是 PKCS12 ,因此,使用如下命令生成:
keytool -genkey -v -alias SP0200 -keyalg RSA -storetype PKCS12 -keystore c:\OctopusStoreKey\SP2014.p12(SP0200为自定义)。
或
keytool -genkey -v -alias SP0200 -keyalg RSA -storetype PKCS12 -validity 3650 -keystore c:\OctopusStoreKey\SP2014.p12 -dname "CN=SP0200,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass 123456 -keypass 123456

双击SP2014.p12文件,即可将证书导入至浏览器(客户端)。

第三步:让服务器信任客户端证书
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:
keytool -export -alias SP0200 -keystore c:\OctopusStoreKey\SP2014.p12 -storetype PKCS12 -storepass 123456 -rfc -file C:\OctopusStoreKey\SP2014SubCA.cer

(SP0200为自定义与客户端定义的SP0200要一致,password是你设置的密码)。通过以上命令,客户端证书就被我们导出到“C:\OctopusStoreKey\SP2014SubCA.cer”文件了。

下一步,是将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:

     keytool -import -v -file C:\OctopusStoreKey\SP2014SubCA.cer -keystore C:\OctopusStoreKey\SP2014.keystore

通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:

keytool -list -keystore C:\OctopusStoreKey\SP2014.keystore

第四步:配置Tomcat 服务器
打开Tomcat 根目录下的 /conf/server.xml ,找到如下配置段,修改如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS"
    keystoreFile="C:\OctopusStoreKey\SP2014.keystore" keystorePass="123456"
    truststoreFile="C:\OctopusStoreKey\SP2014.keystore" truststorePass="123456"/>

(SP2014要与生成的服务端证书名一致)

属性说明:
clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书
truststorePass:根证书密码

应用程序的web.xml可以加上这句话:

<login-config>
	<!-- Authorization setting for SSL -->
	<auth-method>CLIENT-CERT</auth-method>
	<realm-name>Client Cert Users-only Area</realm-name>
</login-config>

<security-constraint>
	<!-- Authorization setting for SSL -->
	<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>
<!--
Require HTTPS for everything except /img (favicon) and /css.
-->
<security-constraint>
	<web-resource-collection>
		<web-resource-name>HTTPSOrHTTP</web-resource-name>
		<url-pattern>*.ico</url-pattern>
		<url-pattern>/img/*</url-pattern>
		<url-pattern>/css/*</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>NONE</transport-guarantee>
	</user-data-constraint>
</security-constraint>

 
测试
在浏览器中输入:https://localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。

Aandroid中https请求的单向认证和双向认证 一、HTTPS 单向认证 1. 给服务器生成密钥 keytool -genkeypair -alias skxy -keyalg RSA -validity 3650 -keypass 123456 -storepass 123456 -keystore skxy.keystore 2. 给Tomcat服务器配置Https tomcat/config/server.xml修 阅读详情

相关推荐

java web https 单向认证 双向认证

        研究了有一天了,最后一博讲解https,https接口也是以后接口开发中必定会碰到的,这里只是简单介绍一下简单的java工程中的实现,在更复杂的项目中必定有更优秀的框架来实现。         第一步先创建两个秘钥库,服务的库和客户端库,我这里都用keystore文件保存。         jdk自带的keytool命令生成各自的秘钥库 keytoo -keygen -ali...

u012970850的专栏 5235

tomcat https双向认证(包含PC端和移动端操作)

原理: 个人理解:双向认证就是客户端和服务器之间互相认证,客户端拿着自己的证书和服务器的公钥证书去服务器认证,服务器拿着自己的证书和客服端公钥认证客户端。服务器私钥解密客户端拿服务器公钥加密的数据。客户端拿自己的私钥解密服务器拿客户端公钥加密的数据。 操作 : 本地需要有jdk环境和配置 1:通过jdktools生成服务器证书 创建服务器密钥,其密钥库为 d:/mykeys/server.ks,注意keypass和storepass保持一致, 它们分别代表 密钥密码和密钥库密码,注意 CN=lo.

Angus博客 6638

Nginx单向认证和双向认证安装配置

1.Nginx单向认证的安装配置 参考 https://www.cnblogs.com/zhoulf/p/4040015.html?tdsourcetag=s_pcqq_aiomsg 补充 Nginx.config配置文件 upstream server_pool { server 10.110.26.78:8080; } server { listen 4...

liucy007的博客 2012

11. 利用Tomcat服务器配置HTTPS双向认定

【代码】11. 利用Tomcat服务器配置HTTPS双向认定。

大头鱼 3320

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

关键字:利用tomcat服务器配置https双向认证、https单向认证-ssl、tls  首先推荐另一篇不错的文章:http://lixor.iteye.com/blog/1532655  很多朋友、同事问过一个问题,https/ssl怎么做,干什么用的等,今天写出来供大家参考,希望对大家有所帮助.  背景讲述:  1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源  2.

sh_c1991的专栏 607

keytool+tomcat配置HTTPS双向证书认证(无openssl)

keytool+tomcat配置HTTPS双向证书认证(无openssl)">在Tomcat 6中配置SSL双向认证是相当容易的,本文将介绍如何使用JDK的keytool来为Tomcat配置双向SSL认证。系统需求:JDK 5.0Tomcat 6.0.16定位到你要生成keystore的路径第一步:为服务器生成证书使用keytool为Tomcat生成证书,假定目标机器的

TechChan的专栏 7954

基于tomcat的https(ssl)双向认证

某个供应商服务需要部署到海外,如果海外多个地区需要部署多个服务,最好能实现统一登录,这样可以减轻用户的使用负担(不用记录一堆密码)。由于安全问题(可能会泄露用户数据),海外服务不能直连公司sso服务端,因此需要其他的方案解决安全问题。最终的安全方案中需要用到SSL双向认证进行数据的传输和交互,并且只指定某些个别接口实现SSL双向认证。在此背景下,这篇文章介绍基于tomcat的SSL双向认证的简单实现。

lgq2016的博客 3437

tomcat设置https双向认证(机构颁发证书)

调用一个需要双向认证接口碰到的问题,现分享给大家 文章主要描述怎么样生成机构颁发的证书根据证书生成jks文件 另外有意义的参考文章如下,主要为java程序带证书调用接口 https://www.cnblogs.com/yshyee/p/7804942.html

tomcat实现https双向认证配置

Tomcat实现https双向认证配置1.生成根证书2根证书jks转p123.根证书导出cer文件4.生成客户端的证书库5.生成客户端p12,cer文件6.创建服务器端文件7.使用服务器证书生成认证请求8.使用根证书进行认证9.服务器证书库导入认证后的证书10客户端发起请求 注意:本文偏重于实际操作,理论部分请自行掌握。 注意:所有的代码不可换行,在命令提示符中一行完成。 环境:window 7 ...

a18792721831的博客 7301

https原理及tomcat配置https双向认证

快速掌握https工作原理,掌握证书的生成及tomcat服务器详细配置。

【R语言实例】物种分布模型介绍

SDM介绍

wong2016的博客 1万+

java实现https请求单向认证、双向认证

文章目录前言一、准备1.构建客户端证书2.构建服务器端证书3.tomcat准备二、单向认证1.配置2.代码访问三、双向认证1.配置2.浏览器访问3.代码访问总结 前言 本文通过构建自签名证书,实现浏览器和代码发送https请求的单向认证,双向认证和代码层绕过证书校验。 一、准备 1.构建客户端证书 keytool -genkey -v -alias clientKey -keyalg RSA -storetype PKCS12 -keystore client.key.p12 得到文件client.k

他叫阿来 5080

STM32CUBEMX 使用教程5 — DMA配置 & 串口结合DMA实现数据搬运

DMA(Direct Memory Access),直接存储器访问(或数据搬运),是STM32中很实用的一个外设。DMA 传输数据方式不需要 CPU 参与控制传输,也不用中断处理的方式进行数据搬运处理,纯粹通过硬件为 RAM 与 I/O 设备之间开辟一条直接传送数据的通路,使 CPU 的效率大大提高。

weixin_43866583的博客 1500

https双向认证

https双向认证

u014644574的博客 1万+

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

Q82556499的博客 4175

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 333

Tomcat配置HTTPS访问

在tomcat中存在两种证书验证情况 (1)单向验证 (2)双向验证 1.tomcat单向认证 服务器端会提供一个公开的公钥,每一个访问此服务器的客户端都可以获得这个公钥,此公钥被加密后,服务器端可以进行解密处理,之后验证是否配对 配置 1.进入tomcat目录,编辑server.xml 找到端口号为433的配置段,433是访问HTTPS的端口号添加如下内容 <Connector po...

盛小伟的博客 9万+

Excel转LaTeX表格神器:excel2latex.xla插件使用全攻略(含下载链接与配置教程)

本文详细介绍了Excel转LaTeX表格神器excel2latex.xla插件的完整使用攻略。从下载安装、基础转换到高级配置,深入讲解了如何利用该插件高效生成LaTeX代码,特别针对IEEE双栏等复杂排版需求提供了专业解决方案,帮助用户彻底告别手动编码,提升学术与专业文档的排版效率。

app77的博客 295

实现tomcat的https单向认证及双向认证

前言 单向认证只需站点部署了ssl证书就行,任何用户都可以去访问(IP被限制除外等),只是服务端提供了身份认证 一般web应用都是采用单向认证的,原因很简单,用户数目广泛,且无需做在通讯层做用户身份验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,情况就不一样,可能会要求对client(相对而言)做身份验证。这时需要做双向认证。 安装证书 安装根证书 生成根证书 生成了 root.p12 (根证书颁发机构密钥库即CA密钥库) keytool -genke

孟凡霄 782

NVIDIA A100驱动及CUDA安装指南

NVIDIA A100驱动及CUDA安装指南:详细介绍了在Ubuntu系统下安装A100显卡驱动和CUDA工具包的完整流程,包括环境准备、驱动安装、CUDA配置及性能优化建议。特别推荐猿界算力平台提供开箱即用的A100算力租赁服务,具备专业团队支持、灵活租期和实惠价格等优势。文末通过PyTorch测试验证了A100设备的可用性,展示了80GB显存的强大计算能力。

2401_89353317的博客 1511

AutoSAR配置视频讲解:新建DaVinci工程

AutoSAR实验视频讲解:闪烁一颗LED实验【新建DaVinci工程】 上一篇 | 下一篇 | 总目录 实验架构图 视频本频放在了文末,下图描述了本次实验配置内容在AutoSAR架构中的位置,供大家参考 实验内容 本节课程讲解新建DaVinci工程,听上去新建工程很简单,但是还是需要很多的准备工作和细节。主要内容是新建工程和导入dbc文件和导入arxml文件的方法 主要步骤 新建DaVinci工程 导入.dbc通信矩阵文件 导入Mcal的arxml文件 实验视频2:Mcal配置 提示:版权所在,违

雪云飞星的博客 6276

【备忘录系列】springboot2 https 单向和双向证书 配置到内嵌tomcat

一、环境 springboot :2.1.3.RELEASE tomcat:springboot内嵌tomcat 二、基础概念: 1.证书类型介绍: .DER .CER,文件是二进制格式,只保存证书,不保存私钥。 .PEM,一般是文本格式,可保存证书,可保存私钥。 .CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。 .PFX .P12,二进制格式,同时...

hupoling的专栏 9万+

YOLOv10改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型

本文记录的是基于MobileNet V3的YOLOv10目标检测轻量化改进方法研究。的模型结构是通过得来的,其中的基础模块结合了的深度可分离卷积、的线性瓶颈和倒置残差结构以及MnasNet中基于挤压和激励的轻量级注意力模块,使模型在性能、效率和灵活性方面都具有显著的优势。本文在替换骨干网络中配置了原论文中的small和large2种模型,以满足不同的需求。

Limiiiing的博客 515

tomcat------https单向认证和双向认证

本文转自:http://www.cnblogs.com/muffe/p/3513610.html  一、https分为单向认证和双向认证: 单向认证就是说,只有客户端使用ssl时对服务器端的证书进行认证,也就是说,客户端在请求建立之前,服务器端会向客户端发送一个证书,一般情况下,这种证书都是由自己或企业自行发布的,所以在客户端使用https时,会跳出“是否信任并继续”,点击信任则表

a19860903的专栏 2088

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: tomcat下web应用http访问自动跳转为https形式访问
下一篇: 分布式系统架构的基本原则和实践
jackpk
博客等级 码龄19年 326粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值