无法使用 certbot 的 webroot 方法下载 letsencrypt 证书

无法使用 certbot 的 webroot 方法下载 letsencrypt 证书

按照此指导对于 Windows 安装,我尝试使用 webroot 方法,从提升的 cmd shell 进行安装:

C:\WINDOWS\system32> certbot certonly --webroot

该命令因未授权错误而失败,因为 IIS 不会公开.well-knowncertbot工具创建的隐藏文件夹。

我在 Windows 服务器上运行 IIS 8.5。

如何在 IIS 中启用隐藏文件夹?

答案1

尽管 certbot 返回的错误表明type:unauthorized,并且 certbot 指南中警告有关 IIS 可能如何区别对待隐藏文件夹,但真正的问题是 IIS 默认不提供没有扩展名的文件。

letencrypt 服务器尝试访问的路径如下:

http://mydmain/.well-known/acme-challenge/<token>

其中没有文件扩展名。

要让 IIS 提供没有扩展名的文件,他需要知道这些文件的内容类型。要告诉他,请将以下 mimemap 设置添加到 web.config 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
     <system.webServer>
         <staticContent>
             <mimeMap fileExtension="." mimeType="text/xml" />
         </staticContent>
     </system.webServer>
</configuration>

为了防止您的网站暴露不想要的内容,请将包含该内容的 web.config 文件添加到.well-know文件夹中

在再次运行 certbot 之前,尝试访问该文件夹中的一些没有扩展名的文件。

相关内容