首先,Microsoft TechNet的Managing Microsoft Certificate Services and SSL引用了一些内容:
回顾一下,使用以下技术建立安全SSL会话:
用户的Web浏览器使用安全URL与服务器联系。
IIS服务器向浏览器发送其公钥和服务器证书。
客户端和服务器协商用于的加密级别 安全通信。
客户端浏览器使用服务器的public加密会话密钥 键并发送加密数据 到服务器。
IIS服务器使用其私有方式解密客户端发送的消息 密钥,会话建立。
- 醇>
客户端和服务器都使用会话密钥进行加密和解密 传输数据。
所以,基本上,SSL使用非对称加密(公钥/私钥对)来传递共享会话密钥,最后实现了与对称的通信方式加密。
这是对的吗?
我正在使用IIS来托管我的网站。假设我的单机上有多个站点,我希望客户端浏览器使用SSL URL来连接我的站点。我需要多少证书?我应该采取以下哪种方法?
1 - 申请单一证书并将其与我托管多个站点的单台服务器相关联。
2 - 申请多个证书并将我的每个站点与自己的证书相关联。
在IIS7中,我似乎只能做到接近1.
我明白了。我可以在我的服务器计算机上安装多个证书,并在必要时使用单独的证书绑定每个站点。
答案 0 :(得分:18)
是的,没错。非对称加密对于验证其他身份是必要的,然后使用对称加密,因为它更快。
答案 1 :(得分:4)
在第4点和第5点你错了。服务器和客户端独立地计算相同的会话密钥。它根本就没有传输过。
答案 2 :(得分:1)
我建议您将更新发布为单独的问题。
无论如何 - 您需要多个证书 - 每个站点一个。请记住,这些证书将您的机器绑定到您的地址。由于每个网站都有不同的地址(可能),因此每个网站都需要不同的证书
答案 3 :(得分:1)
服务器上的每个侦听端口只能有一个SSL证书。这是因为发送的第一件事是服务器证书(如在时间轴中)。这是在HTTP请求之前,因此如果您尝试在单个服务器(例如foo.com和bar.com)上托管两个域,则服务器无法知道要将哪个证书发送到客户端。
有几种不同的方法可以解决这个问题:
答案 4 :(得分:0)
会话密钥由客户端和服务器独立计算而没有密钥传输的情况是Diffie-Hellman密钥交换: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange ---看到漂亮的油漆插图 PKI将在客户端和服务器之间交换加密的会话密钥。
答案 5 :(得分:0)
。
答案是两者。您可以从以下digicert.com的4个步骤中找到一个很好的解释:
。
- 服务器发送其非对称公钥的副本。
- 浏览器创建对称会话密钥,并使用服务器的非对称公共密钥对其进行加密。然后将其发送到服务器。
- 服务器使用其非对称私钥解密加密的会话密钥,以获取对称会话密钥。
- 服务器和浏览器现在使用对称会话密钥对所有传输的数据进行加密和解密。这样可以提供安全的频道,因为 只有浏览器和服务器知道对称的会话密钥,并且 会话密钥仅用于该会话。如果浏览器是 第二天连接到同一台服务器,则新的会话密钥为 已创建。
答案 6 :(得分:-1)
SSL客户端发送随机字节字符串,使客户端和服务器都能够计算用于加密后续消息数据的密钥。随机字节字符串本身使用服务器的公钥(非对称)进行加密。
SSL使用非对称密钥和对称密钥。