1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

古いPCからWindowsアプリを使ってAWSにSSL/TLSリクエストを送信すると証明書エラーとなる件の対応

Posted at

事象

・古いPCからWindowsアプリを使ってAWSにSSL/TLSリクエストを送信すると証明書エラーとなる。

System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: 接続が切断されました: SSL/TLS のセキュリティで保護されているチャネルに対する信頼関係を確立できませんでした。 ---> System.Security.Authentication.AuthenticationException: 検証プロシージャによると、リモート証明書は無効です。

・古いPCからWebブラウザを使ってAWSにSSL/TLSリクエストを送信すると問題なし。
・新しいPCからWindowsアプリ、Webブラウザを使ってAWSにSSL/TLSリクエストを送信すると問題なし。

図にするとこんな感じ。

image.png

解決策

WindowsUpdateする。
もしくは、
Amazon Trust Servicesに公開されているルート証明書をクライアントPCにインストールする。

前提

TLS通信を行うには、サーバーのSSL証明書をクライアントに送付し、クライアント側でその証明書の発行元を信頼する必要がある(他にも色々あるが割愛)。
WindowsOSには、最初から「信頼されたルート証明機関」というものがあり、信頼する発行元のリストが登録されている。
リストに無い場合でも、WindowsUpdate等から自動で最新のリストを更新するようになっている(らしい)。
それとは別に、Webブラウザには最初から信頼リストを別で保持している。
AWSサービスの多くはACMから発行されたSSL証明書を利用している。
クライアントでACMから発行されたSSL証明書を信頼するには、信頼リストに以下のいずれかが登録されている必要がある。

  • ①Amazon Root CA 1
  • ②Amazon Root CA 2
  • ③Amazon Root CA 3
  • ④Amazon Root CA 4
  • ⑤Starfield Services Root Certificate Authority - G2
  • ⑥Starfield Class 2 Certification Authority (※ただし2024年7月以前に発行された証明書に限る)

原因

上記の ⑥Starfield Class 2 Certification Authority がポイントで、AWSの通知にて、2024年8月以降にACMで発行された証明書のルート証明機関からStarfield Class 2を除外するという通知が出ている。
今回のケースでは、どちらのPCもブラウザは比較的新しいものを使っており、ブラウザの信頼リストに①~⑤が登録されていたため、WebブラウザからのTLS通信は問題無かった。
ただし、WindowsアプリからのTLS通信の場合、OSの信頼リストのみを参照する。
新しいPCではOSの信頼リストに⑤と⑥が登録されていたため、TLS通信は問題なかった。
古いPCではOSの信頼リストに⑥のみ登録されていたため、2024年8月以降に発行された証明書を利用したサーバーに対するSSL/TLSリクエストに失敗していたと思われる。

多くのACMを利用した証明書の更新はAWSが自動更新してくれるため、新しい証明書に自動更新されたタイミングで急に接続できなくなることも起こり得るかもしれない。(ただし古くて更新がされていないPCからのアクセスに限る)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?