レガシー コンポーネントの TLS 1.2 回避策

May 27 2020

非常に古いコンポーネントを使用して HTTPS を介して認証サーバーに接続する Windows アプリケーションを公開しています。

http.QuickGetStr("https://www.myserver.com/validate?license=myserial)

これは、認証データを含む配列を返します。

Apache を TLS 1.2 に更新する必要があります。これは、同じサーバーが e コマース側に使用され、ブラウザが TLS 1.2+ を実行していないサーバーに対して「安全でない」と表示されるようになったためです。

問題は、認証サーバーと通信するアプリケーションで使用されるコンポーネントが TLS 1.2 をサポートしていないため、サーバーが TLS 1.2 に更新されると、コンポーネントが失敗してログインできないため、既存のすべてのユーザーがログインできなくなることです。 t 認証データを返しません。より最新のコンポーネントでアプリケーションを更新することはできますし、確実に更新しますが、更新しない従来のユーザーには役に立ちません。

アプリケーションを起動して認証できなくなる既存のユーザーへのアクセスを遮断することなく、認証サーバーを TLS 1.2 に切り替える方法を見つける必要があります。1 つのアイデアは、新しい更新で新しい認証 URL を使用し、何らかの方法で .htacess を介して認証要求をリダイレクトし、TLS 1.0 要求を一方向に送信し、TLS 1.2 要求を別の方向に送信することです。それはうまくいくでしょうか?

回答

1 wp78de May 27 2020 at 06:43

RewriteCond を使用してこれを解決できるはずです。ModRewrite を有効にする必要があります

NameVirtualHost *:443
SSLStrictSNIVHostCheck on

<VirtualHost *:443>
  DocumentRoot /var/www/html
  ServerName my.domain.com

  SSLProtocol TLSv1 TLSv1.2

  RewriteEngine On
  RewriteCond %{SSL:SSL_PROTOCOL} ^TLSv1$
  RewriteCond %{REQUEST_URI} !^/validate$
  RewriteRule .* "-" [F]

  <Directory "/var/www/html">
    Order Deny,Allow
    Allow from all
  </Directory>
</VirtualHost>