在 IIS 上设置 https 网站时是否必须拥有证书。此外,如果我托管一个已经获得证书的网站,在添加证书时我应该知道颁发证书的来源吗?此外,如果我将其设置为 http 网站,其功能是否会像以前一样工作?请帮忙,因为我对 IIS 还很陌生
答案1
客户端信任的服务器证书对于设置 SSL 会话是必不可少的。客户端可以即时生成证书,但服务器必须具有信任链以根证书深受客户信赖。
简单的 TLS 握手 (来源)
下面是一个简单的连接示例,说明了服务器(而不是客户端)通过其证书进行身份验证的握手:
- 谈判阶段:
- 客户端发送 ClientHello 消息,其中指定其支持的最高 TLS 协议版本、随机数、建议的 CipherSuites 列表和建议的压缩方法。如果客户端尝试执行恢复握手,则可能会发送会话 ID。
- 服务器以 ServerHello 消息进行响应,其中包含客户端提供的所选协议版本、随机数、CipherSuite 和压缩方法。为了确认或允许恢复握手,服务器可能会发送会话 ID。所选协议版本应为客户端和服务器都支持的最高版本。例如,如果客户端支持 TLS1.1 而服务器支持 TLS1.2,则应选择 TLS1.1;不应选择 SSL 3.0。
- 服务器发送其证书消息(取决于所选的密码套件,服务器可能会省略这一步骤)。
- 服务器发送ServerHelloDone消息,表示握手协商完成。
- 客户端以 ClientKeyExchange 消息进行响应,该消息可能包含 PreMasterSecret、公钥或不包含任何内容。(同样,这取决于所选的密码。)
- 然后,客户端和服务器使用随机数和 PreMasterSecret 计算出一个共同的秘密,称为“主秘密”。此连接的所有其他关键数据均来自此主秘密(以及客户端和服务器生成的随机值),并通过精心设计的“伪随机函数”传递。
- 客户端现在发送一个 ChangeCipherSpec 记录,本质上是告诉服务器,“从现在起,我告诉你的一切都将被验证(如果服务器证书中存在加密参数,则将被加密)。” ChangeCipherSpec 本身是一个内容类型为 20 的记录级协议。
- 最后,客户端发送经过身份验证和加密的完成消息,其中包含先前握手消息的哈希值和 MAC。
- 服务器将尝试解密客户端的 Finished 消息并验证哈希和 MAC。如果解密或验证失败,则认为握手失败,并应断开连接。
- 最后,服务器发送一个 ChangeCipherSpec,告诉客户端,“从现在开始我告诉你的一切都将被验证(如果协商了加密,还将加密)”。
- 服务器发送经过验证和加密的完成消息。
- 客户端进行相同的解密和验证。
- 应用程序阶段:此时,“握手”已完成,应用程序协议已启用,内容类型为 23。客户端和服务器之间交换的应用程序消息也将进行身份验证,并可选择加密,就像在完成消息中一样。否则,内容类型将返回 25,客户端将不会进行身份验证。
如果你关闭SSL(https),那么客户端和服务器之间的通信将不会被加密,但你的网站应该可以正常使用。
我说应该因为可能存在突然中断的硬编码绝对 https url。此外,如果客户端证书用于身份验证,则您可能无法登录网站 - 这种情况不太可能发生,因为大多数网站都使用用户名和密码机制。
答案2
HTTPS 是建立在证书之上的。
如果没有证书就不可能为 HTTPS 站点提供服务,就像如果没有 URL 就不可能为 HTTP 站点提供服务一样。
答案3
- 在 IIS 上设置 https 网站时是否必须有证书?
是的,没有 SSL 证书您就无法创建 https 站点。
- 另外,如果我托管的网站已经获得证书,那么在包含证书时我应该知道颁发证书的来源吗?
不需要。我们只需导出和导入证书即可。如以下 URL 中所述,
http://www.digicert.com/import-export-ssl-certificate.htm
- 另外,如果我将其设置为 http 站点,其功能还能像以前一样吗?
它将像以前一样工作,但没有任何安全通信。