【问题标题】:Download CER files in IIS and IISExpress, and ISAPI modules下载 IIS 和 IISExpress 以及 ISAPI 模块中的 CER 文件
【发布时间】:2016-07-04 12:44:37
【问题描述】:

我使用 ASP.NET 4.6.1 应用程序。

我使用 VS 2012,Windows 8.1 中的 IISExpress(开发环境)。

我使用 IIS 7.5 和 Windows Server 2008 R2(临时环境)。

我有一个用于下载 证书根 CA(.CER 文件)的 aspx 页面。

我尝试下载 CER 文件(使用 IE 和 Chrome),点击 aspx 页面中的链接:

https://preserver/v2/AccesoAlPortal/public/Certificado/Myrootca.cer

但我得到一个错误; IE页面中的奇怪字符:

0‚ 0‚õ Xºž,mè\OM‰"æn 0 *†H†÷ 0²1%0# *†H†÷

另存为 about 链接仅适用于 Chrome,不适用于 IE。

我在 IIS 站点 - Mime Types 中为 cer 添加 mime 类型

应用程序/x-x509-ca-cert

但我得到了同样的错误。

我尝试像这样修改我的 web.config:

  <location path="AccesoAlPortal">
    <system.web>
      <authorization configSource="Config\system.web.authorization.allow.config"/>
    </system.web>

   <system.webServer>

       <staticContent>

                <!--<mimeMap fileExtension=".cer" mimeType="application/x-x509-ca-cert" />-->
            <mimeMap fileExtension=".cer" mimeType="application/octet-stream" />
      </staticContent>
    </system.webServer>

但我得到同样的错误,并且其他文件无法正确查看,例如 gif 文件。

我较旧的页面论坛 https://www.experts-exchange.com/questions/24467169/IIS-and-download-a-CER.html

我找到了这个:

IIS 6.0 有一个默认的 ISAPI 扩展映射,它将 .cer 指向 asp.dll。

ISAPI 过滤器优先于 MIME 类型,因此,它执行 .cer 通过 asp.dll,这导致文件显示在 浏览器屏幕,而不是被提示安装。

您可以将 .cer 重命名为 .der,也可以删除 ISAPI 延期。要删除,请转到 Web 内的主目录选项卡 站点,然后在应用程序设置下,单击配置,然后删除 .cer 的条目

.cer 重命名为 .der 有效。但我想要不重命名文件扩展名的解决方案。

在 IISExpress 和 IIS 的 applicationHost.config 中,我发现了这一行:

 <handlers accessPolicy="Read, Script">

<add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />

如何删除 ISAPI 扩展?
不是 附带损害 没有 ISAPI 扩展

【问题讨论】:

  • 注释掉那一行。
  • @LexLi 是的,但是哪一个 Collat​​eral damage 评论了该行?公司 IIS 服务器中有很多 asp.net 应用程序。
  • ASP.NET 与经典 ASP 无关。因此,此更改不会影响您的 Web 应用程序。如果您确定不会使用 IIS 的 ASP 组件,您甚至不需要安装它。

标签: asp.net download certificate iis-7.5 iis-express


【解决方案1】:

如果您想下载 CER 文件(CRT 也是如此),您必须将 mime 类型更改为“application/x-unknown”。当您使用“x-x509-ca-cert”时,您会向浏览器明确介绍如何处理任何 CER 文件,x-unknown 浏览器不知道如何处理该文件,因此默认情况下他正在尝试下载它。 还要确保删除任何配置为重定向 CER 文件的处理程序。

祝你好运!

【讨论】:

    【解决方案2】:

    您可以通过 IIS 管理器上的“处理程序映射”设置禁用 ISAPI 模块。

    1. 在 IIS 管理器的左窗格中选择目标网站或虚拟目录。
    2. 双击“IIS”部分中的“处理程序映射”图标。
    3. 找到名为“SecurityCertificate”的设置。
    4. 用鼠标右键单击设置,然后在上下文菜单中选择“删除”。

    此外,您应该为 *.cer 文件添加 MIME 类型。

    1. 在 IIS 管理器的左窗格中选择目标网站或虚拟目录。
    2. 双击“IIS”部分中的“MIME 类型”图标。
    3. 为扩展名“.cer”添加 MIME 类型“application/pkix-cert”或“application/x-x509-ca-cert”。

    【讨论】:

      猜你喜欢
      • 2011-12-09
      • 2020-09-15
      • 2019-02-06
      • 2021-10-23
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多