我使用 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扩展的附带损害?
答案 0 :(得分:1)
如果要下载CER文件(CRT也是如此),则必须将mime类型更改为“ application / x-unknown”。当您使用“ x-x509-ca-cert”时,您会向浏览器清楚地介绍如何处理任何CER文件,而x-unknown表示浏览器不知道如何处理该文件,因此默认情况下,他会尝试下载它。 另外,请确保删除配置为重定向CER文件的所有处理程序。
祝你好运!
答案 1 :(得分:0)
您可以通过IIS管理器上的“处理程序映射”设置禁用ISAPI模块。
此外,您应该为* .cer文件添加MIME类型。