tomcat 配置客户端证书认证
在完成配置客户端证书认证后,浏览器以https访问服务器的时候,会提示选择证书,之后,服务器端会验证证书。也就意味着只有拥有有效证书的客户端才能打开该网站。
以下是具体的配置过程。
1. 在服务器端生成相关证书
(1) 生成服务器证书容器。
- /usr/java/jdk1..0_43/bin/keytool -validity -genkey -v -alias server_test -keyalg RSA -keystore server.keystore -dname "CN=105.12.201.31,OU=test,O=test,L=shanghai,ST=shanghai,c=cn" -storepass test001 -keypass test001
其中,
validity 指定了有效期多少天,
dname 设定了签名中包含的一些信息,其中注意,据说CN指定的ip地址需和访问的ip一致(未测试过不相同的时候是否就会拒绝)。
keyalg 指定签名的算法,RSA或者DSA
storepass和keypass分别指定容器存储密码和读取密码。设置成相同的密码,因为tomcat里只有一个密码的设置。
(2) 生成信赖的客户端证书容器
- /usr/java/jdk1..0_43/bin/keytool -validity -genkey -v -alias server_test_trust -keyalg RSA -keystore server_trust.keystore -dname "CN=105.12.201.31,OU=test,O=test,L=shanghai,ST=shanghai,c=cn" -storepass test002 -keypass test002
(3) 生成客户端用秘钥对
- /usr/java/jdk1..0_43/bin/keytool -validity -genkeypair -v -alias client_1 -keyalg RSA -storetype PKCS12 -keystore client_1.p12 -dname "CN=client_1,OU=test,O=test,L=shanghai,ST=shanghai,c=cn" -storepass test003 -keypass test003
导出客户端用证书
- /usr/java/jdk1..0_43/bin/keytool -export -v -alias client_1 -keystore client_1.p12 -storetype PKCS12 -storepass test003 -rfc -file client_1.cer
(4) 将客户端用的证书导入至服务端信赖的客户端的证书容器
- /usr/java/jdk1..0_43/bin/keytool -import -v -alias client_1 -file client_1.cer -keystore server_trust.keystore -storepass test002
2. 修改tomcat的配置文件 conf/server.xml
找到原先的https的配置部分,默认是处于注释状态,将它放开
- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
- maxThreads="150" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- />
修改为:
- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
- maxThreads="150" scheme="https" secure="true"
- clientAuth="true" sslProtocol="TLS"
- keystoreFile="${catalina.base}/keystore/server.keystore" keystorePass="test001"
- truststoreFile="${catalina.base}/keystore/server_trust.keystore" truststorePass="test002"
- />
3. web app中设置强制SSL访问
WEB-INF/web.xml中
- <!-- 强制SSL,即http请求自动跳转成https -->
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>SSL</web-resource-name>
- <url-pattern>/*</url-pattern><!-- 全站使用SSL -->
- </web-resource-collection>
- <user-data-constraint>
- <description>SSL required</description>
- <!-- CONFIDENTIAL: 确保传输数据不被修改,不能被查看 -->
- <!-- INTEGRAL: 确保传输数据不被修改 -->
- <!-- NONE: 不做特殊限制-->
- <transport-guarantee>CONFIDENTIAL</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
4. 客户端PC导入上面生成的 client_test.cer 以及 client_test.p12 后,重启浏览器,即可访问
初次访问会弹出选择证书的对话框,选中导入的cer证书即可。
tomcat 配置客户端证书认证的更多相关文章
- Tomcat 配置 HTTPS双向认证
Tomcat 配置 HTTPS 双向认证指引说明: � 本文档仅提供 Linux 操作系统下的指引 � 在阅读本指引前请您在 Linux 部署 JDK 和 Tomcatserver为了 Tomcat ...
- tomcat 配置域名证书
tomcat 配置域名证书 示例: <!--" protocol="HTTP/1.1" connectionTimeout=" redirectPort= ...
- tomcat配置SSL双向认证
一.SSL简单介绍 SSL(Secure Sockets Layer 安全套接层)就是一种协议(规范),用于保障客户端和服务器端通信的安全,以免通信时传输的信息被窃取或者修改. 怎样保障数据传输安全? ...
- tomcat 配置https (单向认证)
1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源 2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址 如果只是加密,单向就行 如果想要用系统的人没有证书 ...
- Tomcat配置SSL证书(PFX证书)
公司项目,应该是阿里云服务器 在windows2008 R2搭建的 Tomcat部署SSL证书,本文以PFX证书为例. 配置好之后开始 一.什么是SSL(证书)? SSL证书服务(Alibaba Cl ...
- tomcat配置SSL证书(使用startSSL申请到的证书)
1. 生成p12证书 生成完成后,下载保存. 2. 将p12文件上传至服务器上的tomcat/keystore/上,此处取名为test.com.p12 3. 修改tomcat/conf/server. ...
- tomcat配置ssl证书
1.server.xml 打开已经注释掉的代码 然后添加证书地址 <Connector SSLEnabled="true" clientAuth="want&qu ...
- tomcat配置SLL证书
1.将jks证书复制到conf目录下 2.解除注释:88行至96行 修改代码 <Connector port="443" protocol="org.apache. ...
- tomcat 配置https证书 ssl
修改tomcat-conf-server.xml,原配置文件是 <Connector connectionTimeout="20000" port="8080&qu ...
随机推荐
- django-- Models
数据库配置 django默认支持sqlite,MySQL,Oracle,postgresql数据库 如何将数据库设置为MySQL 将setting中的database修改: DATABASES = { ...
- [原创]如何在Parcelable中使用泛型
[原创]如何在Parcelable中使用泛型 实体类在实现Parcelable接口时,除了要实现它的几个方法之外,还另外要定义一个静态常量CREATOR,如下例所示: public static cl ...
- Python开发【前端】:汇总
页面模板 1.EasyUI(推荐指数★) JQuery EasyUI中文网 下载 使用方法:把文件下载到本地.直接从官网上把源码拷贝过来,更改下js的路径即可 优点:功能非常多.非常齐全 偏做后台管理 ...
- stream数据流
首先必须先要了解Buffer,Buffer是js和c++的结合体,类数组,通常与Stream一起用: 1. (1).Buffer是个类,因此可以构建成对象 (2).buf具有数组的性质 字符串转换成二 ...
- java 性能优化:35 个小细节,让你提升 java 代码的运行效率
前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没 ...
- openfire更改数据库
修改openfire安装目录下./conf/openfire.xml <setup>true</setup>中的true为false,重新启动,然后配置
- You may receive an exception when you browse a .NET Framework 2.0 ASP.NET Web application
SYMPTOMS When you browse a Microsoft .NET Framework 2.0 ASP.NET Web application, you may receive one ...
- url传参中文乱码
当使用url重定向传参的时候,比如: javascript:window.location.href='modifyBook.jsp?BName=<%=URLEncoder.encode(&qu ...
- 论AVL树与红黑树
首先讲解一下AVL树: 例如,我们要输入这样一串数字,10,9,8,7,15,20这样一串数字来建立AVL树 1,首先输入10,得到一个根结点10 2,然后输入9, 得到10这个根结点一个左孩子结点9 ...
- c++ 解包tar
首先我们来看tar文件组成 tar中的数据都是以512字节为单位:tar由三部分组成 “头部+内容+尾部”,其中头部是512字节的头部结构,内容是存放一个文件内容的地方,最后尾部是一个512字节的全零 ...