PHP SERVER SSL_CLIENT_CERTはページをナビゲートするときに消えます

PHP SERVER SSL_CLIENT_CERTはページをナビゲートするときに消えます

SSL クライアント証明書検証を使用するレガシー Web サービスをコンテナ化しています。Apache 2.4 コンテナと PHP 7.4 FPM コンテナがあります。

私のApacheの仮想ホストの設定は次のようになります

...
<VirtualHost *:8443>
  DocumentRoot /var/www/html/myapp
  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/var/www/html/myapp/$1
  SSLEngine on
  ....
  SSLCACertificateFile <PATH TO CA>
  SSLVerifyClient optional
  SSLVerifyDepth 2
  ...
  <Files ~ "\.(cgi|shtml||phtml|php3?)$">
    SSLOptions +StdEnvVars
  </Files>
  <Directory "/var/www/html/myapp">
    SSLOptions +StdEnvVars +ExportCertData
    Require all granted
    DirectoryIndex index.php
  </Directory>
  ...
</VirtualHost>
....

インデックス

<?
   print_r($_SERVER);
?>
<html>
....
  <a href=go.php><img name=go src=="go.png" alt="GO!"></a>
....
</html>

php の

<?php
  print_r($_SERVER);
  ... DO Authoriztion stuff with SSL_CLIENT_CERT ...
?>

ドッカー

version: 3.4"
services:
  apache:\
    image: myappApache
    depends_on: php
    networks:
      - frontend
      - backend
    ports:
      - "80:8080"
      - "443:8443"
    volumes:
      - ./myapp/:/var/www/html/myapp:rw
  php:
    image: myappPHP
    networks:
      - backend
    volumes:
      - ./myapp/:/var/www/html/myapp:to
  networks:
    frontend:
    backend:

index.php に移動して の値を印刷すると、_SERVERprint_r($_SERVER) 表示されます[SSL_CLIENT_CERT] => -----BEGIN CERTIFICARTE----- ... -----END CERTIFICATE-----。ただし、そのページの というリンクをクリックして Web サイトの 2 番目のページに移動すると、 がSSL_CLIENT_CERT見つかりません_SERVER。その他の SSL 関連項目も見つかりません。

  • SSL_SESSION_RESUMED
  • SSL_セッションID
  • SSL_SERVER_A_SIG
  • SSL_SERVER_A_KEY
  • SSL_SERVER_I_DN

_SERVERページ間で構成設定が消えないようにするにはどうすればよいですか?

答え1

SSLOptions +StdEvnVars +ExportCertDataなぜこれが機能したのかはわかりません。しかし、グループの外側に移動するDirectoryと、問題が解決したようです。

関連情報