在IIS和IISExpress以及ISAPI模块中下载CER文件

时间:2016-07-04 12:44:37

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

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

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

我使用 IIS 7.5和Windows Server 2008 R2 (交错环境)。

我有aspx页面可以下载证书根CA (.CER文件)。

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

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

但我收到了错误; IE页面中的奇怪字符:

  

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

另存为仅在Chrome中使用的链接,而不是IE。

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

  

应用程序/ x-X509-CA证书

但我得到同样的错误。

我尝试修改我的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扩展附带损害

2 个答案:

答案 0 :(得分:1)

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

祝你好运!

答案 1 :(得分:0)

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

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

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

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