使用 SSL 和基于证书的身份验证通过 IIS 8 WebDAV 访问文件服务器

使用 SSL 和基于证书的身份验证通过 IIS 8 WebDAV 访问文件服务器

我有:

  • 公司防火墙上的一个漏洞允许我接受端口 80 和 443 上的传入连接
  • 仅一个用于外部 Web 访问的域名
  • 无法访问公司 DNS 设置
  • 现场 Windows Server 2003 域控制器也配置为 Windows 文件服务器,严重依赖 NTFS 权限进行访问控制
  • 现场安装了 IIS 8 的 Windows Server 2012 系统,不是已加入 Windows Server 2003 的域,当前正在运行使用纯文本登录的第三方 Web 应用程序;应用程序当前出现在http://our.domain.address/appfolder从外面看,很不安全
  • 几乎没有 IIS 管理经验
  • 对 SSL 证书有理论了解,但没有任何实际经验
  • 足够的脚本专业知识可以轻松满足我的所有要求
  • 充足的时间

我希望能够:

  • 将对第三方 Web 应用的访问限制为仅通过 SSL,并且需要客户端证书。用户仍应使用现有用户名和密码对 Web 应用进行身份验证,因此无需客户端证书映射;客户端证书的目的是验证用户的机器,而不是用户。
  • 通过以下方式将我们文件服务器上的几个共享对外开放https://our.domain.address/webdav
  • 为每个用户提供一个 USB 记忆棒,其中包含
    • 为我们的 IIS 8 盒子准备一个自签名 SSL 服务器证书
    • 我们的 IIS 8 盒子在连接时需要每个棒唯一的 SSL 客户端证书
    • 他们可以使用一键脚本将两个证书安装到 IE、Firefox 和 Chrome 中
    • 一个提示输入用户名和密码的脚本,然后将两个 WebDAV URL 映射到 Windows 驱动器号。同样,我希望 IIS 既不将客户端证书也不将客户端的当前 Windows 凭据映射到 Windows 服务器登录凭据;我希望我的远程用户必须输入与他们在 Windows 登录到现场加入域的工作站时使用的用户名和密码相同的用户名和密码,并让 IIS 通过那些凭证传输到文件服务器。
  • 通过在 IIS 8 框上的单对话框脚本中输入任意 ID,为每个这样的 USB 棒生成客户端证书
  • 通过在 IIS 8 框中的另一个对话框脚本中输入用于颁发证书的 ID 来撤销任何此类客户端证书

有哪位好心人能给我指导一下以下操作步骤吗:

  • 创建自签名 SSL 服务器证书并使用该证书将 IIS 8 配置为仅 SSL 操作
  • 编写脚本创建 SSL 客户端证书并配置 IIS 8 以要求它们进行 SSL 连接(在 PowerShell、JScript、VBS、cmd 或任何混合中使用)
  • 在 IIS 8 上编写脚本来撤销/取消/注销 SSL 客户端证书
  • 在 IIS 8 上设置 WebDAV,通过 SSL 进行纯文本身份验证,并将该身份验证传递给其他可通过 LAN 访问但不相关的文件服务器上的 UNC 路径
  • 编写脚本将一个自签名服务器证书和一个客户端证书安装到 IE/Winhttp、基于 Gecko 的浏览器和基于 Webkit 的浏览器中

或者告诉我,我这样做是愚蠢的,因为 Windows 中已经内置了一些巧妙的功能,只需单击两次就可以完成我想要的所有操作,为什么我不直接使用它呢?谢谢大家。

答案1

好的,我有一个主意。

  1. 注册你自己的域名
  2. 将 DNS 指向您拥有的此 IIS 服务器
  3. 设置受密码保护的站点,仅接受 443 上的连接
  4. 启用目录浏览
  5. 在其中放置一堆文件,没有索引(除非您想通过精美的 HTML 页面共享文件)

这就是我要做的事情。

这样,他们就可以通过 HTTPS 访问文件树并下载内容,它受 IIS 密码保护...

但是,您仍然可以与当地管理员讨论如何正确设置。

另外,你确实需要删减问题中不必要的部分。它们伤到我的眼睛了。

相关内容