为服务器生成证书
“运行”控制台,进入%JAVA_HOME%/bin目录,使用如下命令进入目录:
cd “c:\Program
Files\Java\jdk1.6.0_11\bin”
使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“D:\home\tomcat.keystore”,口令为“password”,使用如下命令生成:
keytool
-genkey -v -alias tomcat -keyalg RSA -keystore D:\home\tomcat.keystore -validity
36500 (参数简要说明:“D:\home\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore
;“-validity 36500”含义是证书有效期,36500表示100年,默认值是90天
“tomcat”为自定义证书名称)。
为客户端生成证书
为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成:
keytool
-genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore
D:\home\mykey.p12
(mykey为自定义)。
对应的证书库存放在“D:\home\mykey.p12”,客户端的CN可以是任意值。双击mykey.p12文件,即可将证书导入至浏览器(客户端)。
让服务器信任客户端证书
由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,必须先把客户端证书导出为一个单独的CER文件,使用如下命令:
keytool
-export -alias mykey -keystore D:\home\mykey.p12 -storetype PKCS12 -storepass
password -rfc -file D:\home\mykey.cer
(mykey为自定义与客户端定义的mykey要一致,password是你设置的密码)。通过以上命令,客户端证书就被我们导出到“D:\home\mykey.cer”文件了。
下一步,是将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:
keytool -import -v -file D:\home\mykey.cer -keystore
D:\home\tomcat.keystore
通过list命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:
keytool
-list -keystore D:\home\tomcat.keystore
(tomcat为你设置服务器端的证书名)。
让客户端信任服务器证书
由于是双向SSL认证,客户端也要验证服务器证书,因此,必须把服务器证书添加到浏览的“受信任的根证书颁发机构”。由于不能直接将keystore格式的证书库导入,必须先把服务器证书导出为一个单独的CER文件,使用如下命令:
keytool
-keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer
(tomcat为你设置服务器端的证书名)。
通过以上命令,服务器证书就被我们导出到“D:\home\tomcat.cer”文件了。双击tomcat.cer文件,按照提示安装证书,将证书填入到“受信任的根证书颁发机构”。
配置Tomcat服务器
打开Tomcat根目录下的/conf/server.xml,找到Connector
port="8443"配置段,修改为如下:
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
maxThreads="150" scheme="https"
secure="true" clientAuth="true"
sslProtocol="TLS"
keystoreFile="D:\\home\\tomcat.keystore"
keystorePass="123456"
truststoreFile="D:\\home\\tomcat.keystore"
truststorePass="123456"
/>
(tomcat要与生成的服务端证书名一致)
属性说明:
clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书
truststorePass:根证书密码
测试
在浏览器中输入:https://localhost:8443/,会弹出选择客户端证书界面,点击“确定”,会进入tomcat主页,地址栏后会有“锁”图标,表示本次会话已经通过HTTPS双向验证,接下来的会话过程中所传输的信息都已经过SSL信息加密。
摘抄内容
时间: 2024-10-11 19:25:17
摘抄内容的相关文章
[Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这
麒麟开源堡垒主机在等保上的合规性分析
信息安全等级保护工作包括定级.备案.安全建设和整改.信息安全等级测评.信息安全检查五个阶段. 我国的信息安全等级保护共分为五级,级别越高,要求越严格. 我国的信息安全等级保护主要标准包括,<信息系统等级保护安全设计技术要求(GBT 25070-2010)>和<信息系统安全等级保护基本要求(GBT 22239-2008)>. 根据上述二个标准,可以发现堡垒机一般在信息安全等级保护中,主要可以在身份鉴别.访问控制.安全审计.完整性.加密性检查等方面进行匹配,下面从标准中摘抄内容说明如下
我的硬汉观——《丧钟为谁而鸣》读书感悟
读书感悟 硬汉海明威写的硬汉小说,初看这本小说,我还以为是一本革命英雄小说,国内红色小说那种类型的.实则并不然,这部小说写得非常客观,表现了当时革命者和非革命者的正面反面,并非一味的歌颂之作. 这部小说翻译成中文共有40多万字,但其实描述的只是三天的故事,主人公三天来不停的心理变化,还有其他配角的变化以及带给主人公的影响,让这个故事非常的真实.真实到我以为这是海明威自己亲自参与过的事情.事实上,海明威也确实在西班牙内战的时候作为国际纵队去协助西班牙共产党,所以我相信,唯有真实的体会方能写的如此真
java中文编码(字符集)分析-中文乱码分析及解决方案
注:本文部分内容摘自网络,摘抄内容版权归原作者所有. 1. 背景知识 1.1. Http协议 1.1.1. URL和URI 1.1.2. 媒体类型定义 HTTP 在 Content-Type(14.17 节)和 Accept(14.1 节)头部域中使用因特网媒体类型 [17],为了提供打开和可扩展的数据类型和类型协议. media-type = type "/" subtype *( ";" parameter ) type = t
ELK日志分析平台搭建
ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自:http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样
【软件工程】搭建Spring 的入门程序
搭建Spring 的入门程序 摘抄内容 运行结果 相关代码 pom.xml 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma
小白(自己)需要get的技能(内容摘抄整理自java大神,仅作自己目标,轻喷~)
1.会查阅官方文档: 2.能看懂前任的代码: 3.能够精准定位复制黏贴的内容: 4.常用的API(例如:String,StringBuffer/StringBuilder等): 5.集合类,线程类: 6.Servlet(平时很少用纯粹的Servlet写的,但是自己要懂,因为目前很多框架都是基于Servlet封装的): 7.Json和XML的读写: 8.数据库的访问(CRUD,事务,连接池等): 9.Http请求(HttpClient): 10.其他,包括常用的框架,设计模式,面向对象: 11.J
[网络课摘抄]1.DBA日常工作内容和职责
1.统计数据库总容量 按表空间分别统计: 总容量(单位为M): 2.计算用户下所有对象大小 3计算USERS表空间的大小 4计算该USERS表空间对象大小 -----------------------------------------------以下摘抄于网络----------------------------------------------- DBA 职责及日常工作职责: 1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境. 2.熟悉数据库系统的存储结构预测未来的存储需
5.12注入天书第三天 摘抄基础内容
(1)我们在原来的基础上再继续输入多一个引号,也就是"1''".这时候我们看一下查询语句select firstname,surname from users where id = '1''';这时候得讲一个mysql的语法, 在where语句中,当出现多个字符串的时候,"="将会选择优先级最高的一个,优先级是从左到右,依次降低的!也就是离"="最近的一个. 我们来看几个例子. 第一个是和我们上面类似的sql查询语句 select * from