我的应用程序运行的是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
?>
当我有一个简单的客户端<---->服务器架构时,一切都像一个魔咒一样工作。通过访问register.php,用户被要求输入他的pin,然后从智能卡上获得一个证书。在介绍了负载平衡器(客户端<--->负载平衡器<--->服务器)之后,每个对register.php的请求总是落入错误502 Bad Gateway通常有2个问题。
- 这种握手方式普遍可行吗?
- 请给予我一些提示我做错了什么?
1条答案
按热度按时间vi4fp9gy1#
在发现当前类型的负载平衡器(已选择应用程序负载平衡器)不支持相互身份验证后,通过重新创建另一种类型的负载平衡器解决了问题。