是否可以使用 SSH 密钥/PEM 进行网络身份验证来代替密码保护?

是否可以使用 SSH 密钥/PEM 进行网络身份验证来代替密码保护?

我一直在想办法进一步锁定我们的开发站点,然后想到了一个主意,那就是不要使用 IP 中心 + 密码保护,而是使用更类似于 PEM 密钥的东西,就像我用于 ssh 进入服务器一样。我很好奇这是否可行,以及如何设置它。我查看了 Apache AuthType 文档,发现它除了支持 Basic 之外还支持多种功能,例如 Digest 和 Form,我很好奇我是否可以利用其中任何一个,或者可能还有其他东西,以便我们的服务器端口 80 和 443 仅在出示证书时可见?

答案1

你要的是可能的。但是,由于中缺少starttls/命令,因此它仅适用于。非证书 ssh-keys 不适用于此目的。stlshttphttps

客户端需要将证书(和私钥)安装在浏览器中。
除了 https 侦听器的其他标准指令外,服务器还需要包含以下指令。

SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile path/to/a/trusted/CA.crt

答案2

如果您的网站使用 SSL,则可以选择使用客户端证书来授权用户。

该方法的工作方式如下:

  1. 您将 Apache 配置为使用客户端证书身份验证

  2. 创建 CA 来生成并签署证书

  3. 为所有用户生成并签署认证

  4. 配置目录以使用 SSLVerifyClient 指令

有一份非常好的详细指南这里

相关内容