【问题标题】:Client Certificate Authenication Behind AWS LoadbalancerAWS Load Balancer 背后的客户端证书身份验证
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 2013-10-07
      • 1970-01-01
      • 2022-06-23
      • 2018-02-12
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多