如何配置HTTPS双向认证?安全通信从配置开始
一、引言
随着互联网技术的不断发展,网络安全问题日益突出。
HTTPS作为一种安全的通信协议,广泛应用于网站、API等场景,保护数据在传输过程中的安全。
双向认证(Mutual Authentication)是HTTPS的重要功能之一,不仅服务器需要验证客户端的身份,客户端也需要验证服务器的身份,从而确保通信双方的安全性。
本文将详细介绍如何配置HTTPS双向认证,保障安全通信。
二、HTTPS双向认证概述
HTTPS双向认证是指在HTTPS通信过程中,服务器和客户端互相验证对方身份的一种安全机制。
在双向认证中,服务器和客户端都需要提供数字证书,通过交换证书和验证证书的方式确认对方身份。
这种机制可以有效防止通信过程中的身份伪造和中间人攻击,提高通信的安全性。
三、配置HTTPS双向认证步骤
1. 生成密钥和证书
需要为服务器和客户端生成密钥和证书。
可以使用OpenSSL等工具生成密钥和证书。
生成证书时,需要提供一个证书签名请求(CSR),其中包含公钥和相关信息。
生成证书后,需要将证书和私钥保存在安全的地方。
2. 安装服务器证书和私钥
将生成的服务器证书和私钥安装到服务器上。
具体安装方法因服务器操作系统和Web服务器软件而异。
一般来说,需要将证书和私钥配置到Web服务器的配置文件中。
3. 配置Web服务器软件
根据使用的Web服务器软件(如Apache、Nginx等),配置双向认证功能。
以Apache为例,需要在配置文件中启用SSL双向认证,并指定证书和私钥的路径。
同时,需要配置信任链,将客户端证书加入到信任库中。
Nginx等其他Web服务器软件的配置方法类似。
4. 客户端证书配置
客户端需要配置信任库,将服务器证书加入到信任库中。
同时,客户端需要生成自己的证书和私钥,并在发起请求时携带客户端证书。
具体配置方法因客户端编程语言或框架而异。
以Java为例,可以使用Java的KeyStore来管理证书和私钥,通过SSLSocket在发起请求时携带客户端证书。
5. 测试与调试
完成配置后,需要进行测试与调试,确保双向认证功能正常工作。
可以使用测试工具或编写测试代码来模拟客户端与服务器之间的通信,验证双向认证过程是否正常进行。
四、注意事项
1. 证书更新与过期处理:定期更新服务器和客户端的证书,避免证书过期导致的安全问题。可以设置提醒机制,在证书即将过期时提醒管理员进行更新。
2. 证书管理安全:确保证书和私钥的安全存储,避免泄露导致安全风险。可以采用加密存储、访问控制等措施保障证书安全。
3. 兼容性问题:不同的Web服务器软件、客户端编程语言和框架对HTTPS双向认证的支持程度可能不同,需要注意兼容性问题。在配置过程中,需根据具体情况进行调整和优化。
4. 性能影响:双向认证会增加通信过程中的计算和传输开销,可能对系统性能产生一定影响。需要根据实际需求和性能要求进行权衡和优化。
五、总结
本文详细介绍了如何配置HTTPS双向认证,保障安全通信。
通过生成密钥和证书、安装服务器证书和私钥、配置Web服务器软件和客户端证书、测试与调试等步骤,可以实现HTTPS双向认证功能。
在配置过程中,需要注意证书更新与过期处理、证书管理安全、兼容性问题及性能影响等事项。
合理配置HTTPS双向认证,可以有效提高通信安全性,保护数据传输的安全性和完整性。
加了https,敏感信息还要加密吗
https默认端口是443,http默认端口是80,所有加一个s就不一样。
也不是所有网站加s就可以加密,需要WEB服务器端进行相应的配置。
以下配置步骤仅供参考:HTTPS_SSL配置的步骤:服务器端单向认证:第一步:进入jdk的安装文件路径下面的bin目录;第二步:在bin目录下输入以下命令keytool-genkey-v-aliasmykey-keyalgRSA-validity3650-keystorec:\-dnameCN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn-storepass-keypass说明:keytool是JDK提供的证书生成工具,所有参数的用法参见keytool–help-genkey创建新证书-v详细信息-alias以”mykey”作为该证书的别名。
这里可以根据需要修改-keyalgRSA指定算法-keysize指定算法加密后密钥长度-keystorec:\保存路径及文件名-validity3650证书有效期,单位为天CN=你的ip,OU=cn,O=cn,L=cn,ST=cn,c=cn基本信息的配置CN=你的ip这个配置务必注意-storepass-keypass密码设置第三步:生成的文件如下图所示第四步:配置tomcat的文件[1]redirectPort端口号改为:443[2]SSLHTTP/1.1Connector定义的地方,修改端口号为:443属性说明:clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile:服务器证书文件路径keystorePass:服务器证书密码truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书truststorePass:根证书密码[3]AJP1.3Connector定义的地方,修改redirectPort为443第五步: 重新启动Tomcat就可以了。
附加内容:若要使得应用只能通过https的方式访问,在该项目的文件中加入如下代码:CLIENT-CERTClientCertUsers-onlyAreaSSL/*CONFIDENTIALHTTPSOrHTTP*/img/*/css/*NONE测试:在浏览器中输入:CONFIDENTIAL
如何配置 Notes 客户端通过双向认证访问 Web 站点
双向认证的概述传统的单项认证可以让客户端对于服务器的身份进行鉴别,一旦认证通过用户就可以通过用户名和密码这种表单或其他认证形式通过服务器端的认证。
如果用户的登录账户信息被泄露了,那么服务器端对此便无能为力了。
但是,如果 Web 站点的管理员启用了双向认证那么除了用户表单,客户端还需向服务器端提供用户的客户端证书,从而使得用户的个人信息和资源得到更好的保护。
免费下载:IBM Notes 客户端下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。
从技术的层面上来讲,双向认证就是指服务器和客户端在没有用户干预的情况下分别对彼此的身份进行认证。
双向 SSL 会强制要求用户提供客户端证书,服务器会通过数字签名对用户的信息的真实性进行验证。
不过,由于双向认证的复杂性、花费和有效性等问题,目前大部分 Web 应用并没有采用这种认证方式,强制要求用户提供客户端证书。
在 Windows 2008 server 上添加标准 CA 角色接下来让我们以 Windows 2008 R2 Server 为例具体介绍如何在服务器端开启 SSL 和双向认证方式。
1. 准备一台装有 Windows 2008 2 系统的服务器,可以安装在物理机上也可以是虚拟机。
进入系统后右键点击我的电脑->管理,进入服务器管理器。
选中“角色”栏,在右侧面板选择添加角色。
图 1. 服务器管理器页面图 1. 服务器管理器页面2. 在添加角色向导中选择“下一步”。
3. 选择“Active Directory 证书服务”和“Web 服务器(IIS)”,点击下一步。
在这里为了简便,我们将申请证书所需的 CA 和提供 Web 服务的 IIS 安装在了一台 Windows 2008 上。
4. 忽略 Active Directory 证书服务简介,直接点击下一步。
5. 在“选择角色服务”中会默认选择“证书颁发机构”,在这里我们手动将“证书颁发机构 Web 注册”添加进来,在添加时会根据所需服务的依赖情况建议同时安装某些服务和角色,我们选择“添加所需的角色服务”,点击下一步。
图 2. 添加所需的角色服务页面图 2. 添加所需的角色服务页面6. 保持“指定安装类型”的默认选项–独立,点击下一步。
7. 在“指定 CA 类型”页,选择“根 CA”选项。
8. 在“设备私钥”页,选择“新建私钥”,点击下一步。
9. 在“为 CA 配置加密”页,选择默认值。
10. 在“配置 CA 名称”页,根据具体情况键入 CA 的公用名称,点击下一步。
11. 在“设置有效期”页,根据自身情况设置 CA 生成证书的有效期,点击下一步。
12. 在“配置证书数据库”页保持默认值,点击下一步。
13. 在“Web 服务器(IIS)”页,点击下一步。
14. 在“选择角色服务”页,保持默认选项,点击下一步。
15. 在“确认安装选择”页,确认安装选项准确无误并点击安装。
16. 在“安装结果”页,查看安装结果成功后点击关闭。
图 3. 安装结果页面图 3. 安装结果页面至此,AD 证书服务和 IIS Web 服务就安装完毕了,重启服务器以确保新安装的服务能够生效。
配置 IIS Web 站点使用 SSL待服务器重启完毕后,通过浏览器访问 IIS Web 站点,确保 HTTP 服务已经启动。
在开启 SSL 时,网站的管理员可以通过 IIS 本身的服务器证书功能快速创建服务器端自签名证书,具体步骤如下:1. 从开始->所有程序->管理工具,选中 Internet 信息服务(IIS)管理器。
图 4. 管理工具页面图 4. 管理工具页面2. 在树状控制面板中选中带有计算机名称的根节点,在右侧主面板中双击“服务器证书”。
图 5. 服务器证书页面图 5. 服务器证书页面3. 点击创建自签名证书链接。
图 6. 创建自签名证书图 6. 创建自签名证书4. 为证书添加证书名称。
5.确认自签名证书添加成功。
6. 在左侧连接面板选中默认站点节点,然后在右侧操作栏中选择“绑定”链接。
7. 在网站绑定框中点击“添加”按钮。
图 7. 网站绑定页面图 7. 网站绑定页面8. 从“类型”中选择 https,在 SSL 证书中选择在第四步中创建的自签名证书,点击确定。
图 8. 添加网站绑定页面图 8. 添加网站绑定页面9. 打开 Web 浏览器,输入 h/主机名,访问测试站点 SSL 是否开启。
如果看到如下图,证明 SSL 已经开启成功。
图 9. 测试站点页面图 9. 测试站点页面向 CA 申请带有私钥的个人证书打开 Web 浏览器,输入测试网站的证书申请网址,如:/测试服务器域名/certsrv/。
待下面网页加载后点击其中的“申请证书”。
图 10. 测试网站证书申请网址页面图 10. 测试网站证书申请网址页面选择“高级证书申请”链接。
图 11. 选择证书类型页面图 11. 选择证书类型页面选择创建并向此 CA 提交一个申请链接。
在高级证书申请中填写相关信息并在证书类型中选择“客户端认证证书”。
图 12. 高级证书申请填写页面一图 12. 高级证书申请填写页面一注意:一定要在密钥选项中选择“标记密钥为可导出”单选框,其他值保持默认即可。
如何在本地配置https服务器
1.找到jdk安装目录,运行控制台,切换到该目录;2.使用keytool为tomcat生成证书;keytool -genkey -v -alias tomcat -keyalg RSA -keystore -validity .为客户端生成证书;keytool -genkey -v -alias huawei -keyalg RSA -storetype PKCS12 -keystore huaweitest.p12 -validity .将huaweitest.p12导入到tomcat的信任证书链中keytool-export -alias huawei -keystore huaweitest.p12 -storetype PKCS12 -rfc -import -alias huawei -v -file -keystore 5.从tomcat的证书链里导出跟证书keytool-export -v -alias tomcat-file -keystore 6.将华为的导入tomcat的信任证书链keytool -import -v -file -alias huawei -keystore 7.将华为的导入tomcat的信任证书链keytool -import -v -file -alias huawei_ca -keystore 8.配置tomcat双向认证:<Connector port=protocol=11NioProtocolscheme=https secure=truekeystoreFile=conf/keys/ keystorePass=123$%^truststoreFile=conf/keys/ truststorePass=123$%^clientAuth=true sslProtocol=TLSmaxThreads=150 SSLEnabled=true>单向认证:<Connector port=protocol=11NioProtocolscheme=https secure=truekeystoreFile=conf/keys/ keystorePass=123$%^clientAuth=false sslProtocol=TLSmaxThreads=150 SSLEnabled=true>9.配置完后,可以在本地验证配置是否成功。
在服务器上进行格式转换成pem格式openssl x509 -inform der -in -out 通过以下命令模拟与应用服务器建链单向认证模拟建链:openssl s_client -connect ip:port -tls1 -CAfile 双向认证模拟建链:openssl s_client -connect ip:port -cert -CAfile -tls110.将生成的huaweitest.p12和证书发给华为接口人。

