个人网站在仅自己访问的情况下,由于不涉及到商业网站为大量客户签发 Client Certificate 造成的费用、管理和用户易用性的问题,是否能用 HTTPS 客户端证书代替认证校验?
理论上服务端配置得当的话,没有正确的客户端证书是无法请求到内容的吧?
1
dingwen07 2021-06-23 00:01:46 +08:00 via iPhone
可以
|
2
3dwelcome 2021-06-23 01:21:52 +08:00
感觉客户端证书认证体系配置起来挺麻烦的。
个人网站认证传 cookie 就好,反正别人又没办法截取。 |
3
cnnblike 2021-06-23 01:31:19 +08:00
可以,在亚马逊内部就是这么做验证的(当然亚马逊有自己的 ca ),client certificate 只有一个不好,就是你在用 caddy 之类的时候(我只试过 1.x )反向代理很难配置正确
|
4
cnnblike 2021-06-23 01:33:13 +08:00
如果只是为了方便实现的话,可以在 openldap/saml 之类的 sso 上加 client certificate 验证,然后其他的网站调用 sso 在 cookie 里的结果
|
5
Tink 2021-06-23 01:41:33 +08:00 via Android
可以,有点麻烦
|
6
jim9606 2021-06-23 02:29:29 +08:00
只要你自己不觉得烦,完全可以,而且安全性很高。
TLS 客户端认证的坏处是,常见的 WebServer 实现在进行 Client Auth 失败后会直接关闭连接。浏览器除了显示 Bad Client Auth 之外没法显示任何东西,包括 trouble shooting 指引。Server 日志除了一条 Client Auth Failed 之外也不能提供更多信息。 当然个人使用这些都是小问题。 |
7
jim9606 2021-06-23 02:31:50 +08:00
@3dwelcome 网上一大堆直接用 openssl 或者 easyrsa 命令行搞确实比较劝退。
推荐下自用方案——XCA,图形化操作。 |
8
passerbytiny 2021-06-23 09:18:39 +08:00 via Android
客户端证书(数字签名)是最高级别认证手段,同时也是易用性最低的。是否用主要看安全性和易用性怎么权衡。
|
9
Kahnn 2021-06-23 11:34:02 +08:00
可以,网银都用这玩意,安全性有保证
|
10
julyclyde 2021-06-23 14:15:44 +08:00
安全方面没啥问题,银行都这么用的
问题就是签发很麻烦 |