最近因为要用到数字证书SSL通讯来实现通讯过程中的保密与安全,现在有个疑问如下,希望大家能帮我解答下,我知道在利用HTTPS协议客户段与服务端交互过程中客户首先发起请求服务器回馈的同时也会附带证书等内容。
疑惑:
1、如果服务器不提供证书,客户端还能和服务端进行基于HTTPS协议的安全通信么?(也就是在没有证书的情况下),虽然我知道在后期交互过程需要利用数字证书生成会话密匙(这是不是意味着没有数字证书浏览器就会从根本上阻止这次HTTPS的会话?)
2、浏览器提供证书的情况下,我看到很多时候我们又需要手动在浏览器中添加服务器证书,为什么需要添加?会话过程中不是服务器会提供回来数字证书么,那么手动导入的整个证书和在与服务器通讯过程中返回的证书的区别是? 我的小小理解是(我们导入的证书是被我们所信任的证书,那么客户端请求服务端,服务端返回回来了证书,我们需要验证该证书的正确性,那么首先会到我们导入的信任证书列表中获取,如果存在就信任继续交互,理解正确?),同时我还想知道的是,在服务端返回证书的时候,浏览器对该证书验证的时候,去查看信任证书列表,找到就信任(这个找到并且信任的过程会到相应的CA那里通过网络验证吗),还是直接就本地验证? 希望大牛能回答我的疑惑哇!

解决方案 »

  1.   

    To use SSL, an application server must have an associated certificate for each external interface, or IP address, that accepts secure connections. The theory behind this design is that a server should provide some kind of reasonable assurance that its owner is who you think it is, particularly before receiving any sensitive information. It may be useful to think of a certificate as a "digital driver's license" for an Internet address. It states with which company the site is associated, along with some basic contact information about the site owner or administrator. http://docs.oracle.com/javaee/1.4/tutorial/doc/Security6.html我觉得目前的格局就是通过证书来传递认证信息等加密前准备数据