我已成功配置我的 Apache 网络服务器以使用公共证书作为身份验证方法,使用以下配置:
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile /etc/ssl/private/key.crt
但是,当客户端没有安装客户端时,我想将它们重定向到另一个(错误)页面,而不是向他们显示标准(加密)错误消息:
ssl_error_handshake_failure_alert
我搜索了一下,发现有人开发了一个 mod_ssl_error 模块,这显然需要重新编译 mod_ssl 模块。由于没有建立真正的连接(因为它被中止了),Apache 无法显示任何错误消息。
另一种方法是将 SSLVerifyClient 指令设置为可选,并检查用户是否使用公钥访问页面。有什么方法可以验证这一点吗?
有什么(好)方法可以实现这样的目标吗?
答案1
我找到了一个使用 PHP(我一直在使用的语言)的好的解决方案: