レガシー コンポーネントの TLS 1.2 回避策
非常に古いコンポーネントを使用して 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 要求を別の方向に送信することです。それはうまくいくでしょうか?
回答
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>