【发布时间】:2023-01-04 20:36:34
【问题描述】:
我的应用程序正在运行 Apache HTTP Server 2.4,PHP 7.4.x 使用客户端证书身份验证机制。
服务器配置看起来像
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile cert/2022/test_aws.pem
SSLCertificateKeyFile cert/2022/private-key.key
SSLCACertificateFile "D:/Apache24/cert/mycard_ca_bundle.crt"
SSLCADNRequestFile "D:/Apache24/cert/mycard_ca_bundle_client_cas.crt"
SSLVerifyClient none
SSLVerifyDepth 10
<LocationMatch ^/login/register*>
SSLVerifyClient require
</LocationMatch>
在代码register.php
<?php
...
$clientDN = getenv("SSL_CLIENT_S_DN");
error_log("clientDN=".$clientDN);
$emailpair = explode(",", $clientDN)[0];
$email = explode("=", $emailpair)[1];
error_log("user_email=".$email);
//further operation for in app authentication
?>
当我有一个简单的 Client<----> Server 架构时,一切都很好用。 通过访问 register.php,用户被要求输入他的 pin 并从智能卡获得证书。 引入负载均衡器后(客户端 <---> 负载均衡器 <---> 服务器)每次对 register.php 的请求总是落入 Error 502 Bad Gateway 一般有2个问题。
- 这种握手一般可行吗?
- 请给我一些提示我做错了什么?
【问题讨论】:
标签: php apache authentication ssl certificate