SSL单双向认证

单向认证:(私钥加密/公钥解密,公钥加密/私钥解密)

客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到客户端,客户端用服务器发送来的公钥对数据解密,然后在用传到客户端的服务器公钥对数据加密传给服务器端,服务器用私钥对数据进行解密,这就完成了客户端和服务器之间通信的安全问题,但是单向认证没有验证客户端的合法性。

双向认证:

(1)客户端向服务器发送消息,首先把消息用客户端证书加密然后连同时把客户端证书一起发送到服务器端

(2)服务器接到消息后用首先用客户端证书把消息解密,然后用服务器私钥把消息加密,把服务器证书和消息一起发送到客户端

(3)客户端用发来的服务器证书对消息进行解密,然后用服务器的证书对消息加密,然后在用客户端的证书对消息在进行一次加密,连同加密消息和客户端证书一起发送到服务器端,

(4)到服务器端首先用客户端传来的证书对消息进行解密,确保消息是这个客户发来的,然后用服务器端的私钥对消息在进行解密这个便得到了明文数据。



SSL (Secure Socket Layer - 安全套接字层)

功能:保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,确保数据在网络上之传输过程中不会被截取及窃听,防止篡改。

 

如何让我们的WEB应用程序应用SSL安全保障?经过几天摸索,终于实现 TOMCAT+SSL 双向认证,也就是说,首先,客户端将要认证服务器的安全性,确保访问的是正确的服务器,而非假冒的钓鱼网站;其次,服务器也要认证客户端的安全性,只有那些拥有服务器授权证书的客户端才可以访问。

 

下面请遵循详细步骤

1.       在D盘建立目录:mykeys

2.       启动命令行,并转移到 d:/mykeys

a)         创建服务器密钥,其密钥库为 d:/mykeys/server.ks,注意keypass和storepass保持一致,它们分别代表 密钥密码和密钥库密码,注意 CN=localhost 中,localhost表示要配置SSL的主机名,不能任意指定
D:/mykeys>keytool -genkey -v -alias serverKey -dname "CN=localhost" -keyalg RSA -keypass rwm258 -keystore server.ks -storepass rwm258

b)        创建客户端密钥,其密钥库为 d:/mykeys/client.p12,注意这个密钥库的后缀名,注意密钥库类型PKCS12
D:/mykeys>keytool -genkey -v -alias clientKey -dname "CN=SomeOne" -keyalg RSA -keypass lyl147 -keystore client.p12 -storepass lyl147 -storetype PKCS12

c)        将客户端密钥导出为证书文件
D:/mykeys>keytool -export -alias clientKey -file clientKey.cer -keystore client.p12 -storepass lyl147 -storetype PKCS12

d)        将上述客户端密钥文件导入服务器证书库,并设置为信任证书;注意会问你是否信任该证书,回答 y 即可
D:/mykeys>keytool -import -v -alias clientKey -file clientKey.cer -keystore server.ks -storepass rwm258

3.       为了在本机浏览器中进行SSL访问,请:双击 d:/mykeys/client.p12 ,将启动证书向导

a)         第2步:要导入的文件 文件名  D:/mykeys/client.p12

b)        第3步:为私钥键入密码lyl147 ,勾选:标志此密钥为可导出的

c)        第4步:证书存储,选:将所有的证书放入下列存储区,然后,浏览-个人

d)        现在,打开IE,查看证书:工具-Internet选项-内容-证书-个人,可以看到 SomeOne 证书已被安装

4.       配置TOMCAT服务器,以支持SSL认证,编辑文件:%tomcat_home%/conf/server.xml,下面这段配置代码本来是被屏蔽的,现在请取消其屏蔽,并相应增加密钥库的配置,其中clientAuth="true" 用以启动双向认证,否则,只有客户端认证服务器-单向

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="true" sslProtocol="TLS"

keystoreFile="D:/mykeys/server.ks" keystorePass="rwm258"

truststoreFile="D:/mykeys/server.ks " truststorePass=" rwm258" />

5.       启动 TOMCAT,然后在IE浏览器中访问:https://localhost:8443/

a)         将弹出一个消息框,这是要客户端认证服务器,查看证书可看到服务器证书为 localhost ,回顾前面的步骤,正是我们创建的那个服务器证书;这里点 是

b)        页面出现,说明客户端被允许访问

6.       现在,再次打开IE,工具-Internet选项-内容-证书-个人 ,删除那个 SomeOne 证书

a)         现在,再次在IE浏览器中访问:https://localhost:8443/ 你会发现,回顾前面的 3 步骤,你会明白为什么要将客户端证书导入 IE 浏览器;

7.       请再次重复 3 步骤,之后再尝试访问

 

OK,至此,我们在本机上SSL双向配置已经成功,那么,换另一台电脑来访问本机服务器如何处理呢?很简单,把 d:/mykeys/client.p12 复制到该机器,然后执行 3 步骤,将这个证书导入到该机器的 IE浏览器个人证书中,记得密码是:lyl147;当然,在那台电脑上访问时,要将localhost修改为本机主机名或IP地址

 

-------------------------------------------------------------------

 

要使你自己的WEB程序应用SSL安全访问,请遵循如下配置

在你应用的 web.xml 文件的 <web-app></web-app> 中加入如下配置

<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>

 

你会发现,即使使用 http://....:8080 来访问你的应用程序,它也会重定向为 https://....8443 访问,也就是说,你的应用已经强制使用SSL安全访问层

OK,现在,充分享受 SSL 安全访问服务吧

 

此外,你还可以在你的程序中验证客户证书,实现客户端证书登录,具体这里不谈了,下次给出完整程序

基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订管理**:系统支持订的创建、跟踪和管理,包括订的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值