代码之家  ›  专栏  ›  技术社区  ›  JotaBe

无法设置URLRewrite以将HTTP重定向到HTTPS并要求客户端证书

  •  0
  • JotaBe  · 技术社区  · 6 年前

    我有一个IIS站点,其中: -我需要将HTTP重定向到HTTPS -我需要客户证书

    第一部分工作得很好,有一个简单的规则可以从HTTP重定向到HTTPS。

    但是,如果我修改站点的SSL设置以要求SSL和客户端证书,如果我尝试使用HTTP访问该站点,而不是获得重定向,则会得到一个错误。

    有什么方法可以让这个工作吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   JotaBe    6 年前

    解决方案是在IIS中为同一域设置两个不同的站点:

    • 一个只绑定到HTTP,通常在端口80中
    • 另一个绑定到HTTPS的,通常在端口443中,带有其证书

    第一个站点只是一个空站点,只有一个 web.config 将所有请求重定向到https的文件。这是它的内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
      <rewrite>
       <rules>
         <rule name="Redirect to HTTPS" enabled="true" patternSyntax="Wildcard"
          stopProcessing="true">
          <match url="*" />
          <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
         </rule>
        </rules>
      </rewrite>
     </system.webServer>
    </configuration>