ssl AWS负载均衡器背后的客户端证书认证

h5qlskok  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(157)

我的应用程序运行的是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个问题。

  • 这种握手方式普遍可行吗?
  • 请给予我一些提示我做错了什么?
vi4fp9gy

vi4fp9gy1#

在发现当前类型的负载平衡器(已选择应用程序负载平衡器)不支持相互身份验证后,通过重新创建另一种类型的负载平衡器解决了问题。

相关问题