IIS 7和SSL通配符证书
我有一个不安全的域,并且想要创建一个安全的子域。在运行Windows Server 2008和IIS 7的相同IP地址上。IIS 7和SSL通配符证书
因此,我为* .mydomain.co.uk购买了通配符SSL证书,并在服务器上安装了它。它正确显示在服务器证书下。
我已经为测试目的设置了带有HTTP绑定的子域,并且一切正常 - 所以它不是IIS的问题。然后,我在正常443端口上为子域添加HTTPS绑定,并且因为我已经命名了证书* .mydomain.com,所以在UI中为我启用了主机名框。所以我设置了HTTPS绑定,删除HTTP绑定,重新启动网站和IIS。当我浏览到www.mydomain.com时可以正常工作 - 但是当我浏览到https://subdomain.mydomain.com时,我收到浏览器故障,指出找不到服务器。
任何帮助将不胜感激。
好吧,算了一下 - 正常情况下,它不仅仅是一个问题。
首先是一个防火墙的问题 - 服务器在Amazon EC2上运行和安全组成立了以阻止HTTPS通信端口443
其次起来确实是DNS。尽管在使用HTTP绑定时子域名可以不带CNAME记录,但使用HTTPS时似乎需要显式CNAME记录。不要问我为什么。
有问题的子域用于IFrame Facebook应用程序。它在IE和Chrome中表现良好,但Firefox引发了ssl_error_renegotiation_not_allowed错误。这是由于IIS中的SSL设置 - 它们需要设置为需要SSL(未勾选)或打勾,但然后客户端证书忽略
Phew - 很高兴它现在正在运行。
检查您的DNS设置,并确保您有subdomain.mydomain.com的A或CNAME记录。
只要您的网络服务器设置为处理特定的域名,并不意味着主机名/域名实际存在 - 也必须为其配置DNS系统。
我能够用A记录而不是CNAME来做到这一点。我没有要求SSL打勾。我改用URL重写。 <rule name="redirect to https" stopProcessing="true"> <match url="http://(.*)"/> <conditions> <add input="{HTTPS}" pattern="^OFF$"/> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent"/> </rule>
您还需要使用通配符证书在所有安全子域上设置SSL主机标题。
appcmd set site /site.name:"<IISSiteName>" /+bindings.[protocol='https',bindingInformation='*:443:<hostHeaderValue>']
它可以推测这一个痛苦,但有一件事是寻找
但要确保所使用的子域的应用程序池的身份有权限到C:\ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys文件夹。
嗨@Dimestore,你认为“用于子域的应用程序池的标识”是什么意思?你能给我一个确切的想法,该怎么做? – Krunal 2012-05-14 13:04:04
你的意思是说这个吗? http://waissguy.wordpress.com/2010/08/30/granting-permissions-to-the-applicationpoolidentity/ – Krunal 2012-05-14 13:19:06
不知道迟到的答案是否会帮助任何人,我的意思是用于该网站的应用程序池有一个Windows身份,该身份必须具有MachineKeys文件夹的文件读取权限。通常,设置为用于应用程序池的标识未设置为具有对该文件夹(或站点外的任何文件夹)的读取访问权限 – 2012-10-10 18:41:42
同意。如果您没有任何A记录,或者就此而言,您的DNS系统中的任何条目都不能访问您的子域网站。 IIS设置只是这个过程的一半。 – Encryption 2012-03-13 17:11:41
但DNS工作。如果使用http绑定而不是使用https绑定来设置子域,则它可以正常工作。浏览器可以得到它等。我是否需要做任何不同的事情,因为它是一个https? – Swomble 2012-03-14 09:07:51
应该添加DNS正在从外部工作到服务器。即通常互联网连接的PC如果使用HTTP绑定进行设置,则可以浏览到子域。将其更改为HTTPS绑定时会导致事件中断。 – Swomble 2012-03-14 11:09:37