`

SSL(Secure Sockets Layer 加密套接字协议层)安全认证

    博客分类:
  • web
 
阅读更多
SSL(Secure Sockets Layer 加密套接字协议层)

SSL是一个安全协议,它提供使用TCP/IP的通信应用程序间的隐私与完整性。因特网的超文本传输协议(HTTP)使用SSL来实现安全的通信。

基本逻辑:
1、生成服务端密钥库并导出证书;(生成server.jks文件服务器需要识别
2、生成客户端密钥库并导出证书;(生成custom.p12文件
3、根据客户端密钥库生成客户端信任的证书;(将custom.p12文件生成custom.cer文件
4、将客户端证书导入服务端密钥库;(将custom.cer文件导入server.jks文件
5、将服务端证书导入浏览器。(将server.jks文件生成server.cer文件浏览器需要识别

一.tomcat6配置双向认证

1、生成服务器端证书
X:\>keytool -genkey -keyalg RSA -dname "cn=127.0.0.1,ou=sango,o=none,l=china,st=beijing,c=cn" 
-alias server -keypass password -keystore d:\server.jks -storepass password -validity 3650 

强调:服务端的CN值必须为域名,不然客户端认证时为非法。

2、生成客户端证书
X:\>keytool -genkey -keyalg RSA -dname "cn=sango,ou=sango,o=none,l=china,st=beijing,c=cn"
 -alias custom -storetype PKCS12 -keypass password -keystore d:\custom.p12 
-storepass password -validity 3650   

客户端的CN可以是任意值。

3、由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,我们

(1)必须先把客户端证书导出为一个单独的CER文件,使用如下命令,先把客户端证书导出为一个单独的cer文件:
X:\>keytool -export -alias custom -file d:\custom.cer -keystore  d:\custom.p12 -storepass password -storetype PKCS12 -rfc 


(2)然后,添加客户端证书到服务器中(将已签名数字证书导入密钥库)将客户端cer文件导入到tomcat可以识别的文件.jks文件
X:\>keytool -import -v -alias custom -file d:\custom.cer -keystore  d:\server.jks -storepass password  

(3)从服务器证书库中导出服务器证书(把server.cer文件导入到浏览器中才不会报证书错误)浏览器需要识别服务器cer文件
keytool -export -v -alias server -keystore d:\server.jks -storepass password -rfc -file d:server.cer

4、查看证书详细(-v)内容
keytool -list -v -keystore d:\server.jks -storepass password  


5、配置Tomcat service.xml文件
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"  maxThreads="150" scheme="https" secure="true"  
clientAuth="true" sslProtocol="TLS"  
keystoreFile="D:/server.jks" keystorePass="password"
truststoreFile="D:/server.jks" truststorePass="password"  /> 


不设置truststoreFile,truststorePass属性,即默认指向"%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS"文件(JKS类型),则在双向认证中,需把客户端认证导入到此

文件中.
clientAuth=”true”表示双向认证  浏览器必须导入p12文件否则看不到登录页面

将tomcat的protocol参数由"HTTP/1.1"改成"org.apache.coyote.http11.Http11Protocol"

6、导入客户端证书到浏览器
双向认证需要强制验证客户端证书。双击“custom.p12”即可将证书导入至IE中。 在生成服务器端证书中的cn=127.0.0.1必须用这个ip不然会说证书错误。

安装证书时需要选择 将证书放入下列存储 然后点击 受信任的根证书





访问时必须:hppts://127.0.0.1:80/xxxx的形式  即使是80也需要加上而不能去掉

二.tomcat6配置单向认证

1、生成服务器端证书
X:\>keytool -genkey -keyalg RSA -dname “cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn”
-alias server -keypass password -keystore d:\server.jks -storepass password -validity 3650 

2、从服务器证书库中导出服务器证书(把server.cer文件导入到浏览器中才不会报证书错误)
keytool -export -v -alias server -keystore d:\server.jks -storepass 123456 -rfc -file d:server.cer

3、由于是单向认证,没有必要生成客户端的证书,直接进入配置tomcat service.xml文件,Xml代码
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" 
maxThreads="150" scheme="https" secure="true" 
clientAuth="false" sslProtocol="TLS" 
keystoreFile="D:/server.jks" keystorePass="password"/>


clientAuth="false"表示单向认证,同时去掉服务端的可信任认证,即:truststoreFile="D:/server.jks" truststorePass="password"这2个属性。

单向认证只需要把服务端的认证导入浏览器即可,而双向认证则需要安装用户的.p12文件和服务端认证。

当使用双向认证时可以在后台获得证书(注意是双向认证clientAuth=”true”时才能得到):
X509Certificate[] certs = (X509Certificate[]) req.getAttribute("javax.servlet.request.X509Certificate");
		System.out.println(certs[0].getSigAlgName());

参考:http://www.blogjava.net/algz/articles/345601.html
http://www.blogjava.net/icewee/archive/2012/06/04/379947.html
  • 大小: 46.9 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    opensslOpenSSL是一个开源的加密工具包,提供了各种加密算法和协议的实现,包括SSL(Secure Sockets L

    OpenSSL是一个开源的加密工具包,提供了各种加密算法和协议的实现,包括SSL(Secure Sockets Layer)和TLS(Transport Layer Security)等协议

    sockets(套接字)

    sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字

    SSL&TLS协议簇加解密流程

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 安全传输层协议(TLS)...

    计算机网络ssl仿真实验

    SSL(Secure Sockets Layer 安全套接层)及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 SSL协议的工作流程: 1)...

    secureSockets:TCP的加密套接字

    secureSockets TCP的加密套接字

    SSL工作原理详解

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

    SSL双向认证证书制作过程流程

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接...

    OpenSSL对称算法、哈希校验、非对称算法、证书管理、SSL安全.rar

    SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和...

    SSL安全协议研究,云大软院

    SSL安全协议是国际上通行的银行卡密码校验技术和标准之一,又称为“安全套接层”(Secure Sockets Layer)协议,主要用于提高应用程序之间的数据安全系数。因此,如何提高SSL协议对中间人攻击的免疫能力、保证交易中...

    Android Openssl 库(native层)

    SSL是Secure Sockets Layer(安全套接层协议)的缩写。在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在...

    ssl 协议简介 原理 过程

    安全套接层(Secure Sockets Layer,SSL)是网景公司(Netscape)在推出Web浏览器首版的同时,提出的协议。SSL采用公开密钥技术,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听...

    SSL协议.xmind

    SSL协议(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。

    SSL原理及应用

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

    SSL&TLS 协议详解

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 安全传输层协议(TLS)...

    berkeley套接字

    这套应用程序接口也被用于Unix域套接字(Unix domain sockets),后者可以在单机上作为进程间通讯(IPC)频道的接口。 这种基于流的传输层接口(TLI)应用程序接口为套接字应用程序接口提供了一种选择。 不过,最近...

    [详细完整版]服务器认证.docx

    SSL证书说明 简介:SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 作用: ...

    服务器SSL压力卸载解决方案1

    背景介绍SSL(Secure Sockets Layer 安全套接层)协议是在互联网上广泛应用于交易安全性保障的一种主导技术。在一般情况下,HTTP 采用明文的

    Win64OpenSSL-1_1_1g.zip

    SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和...

    SSL网络安全技术白皮书.docx

    SSL Secure Sockets Layer 安全套接层 VPN Virtual Private Network 虚拟专有网络 SSL网络安全技术白皮书全文共15页,当前为第3页。SSL网络安全技术白皮书全文共15页,当前为第3页。 SSL网络安全技术白皮书全文共15...

    openssl-3.0.7

    SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和...

Global site tag (gtag.js) - Google Analytics