ホームページ  >  記事  >  バックエンド開発  >  HTTPS 経由でユーザー指定のホストにアクセスするアプリケーションは、その FQDN を検索して支援を提供しようとする必要がありますか?

HTTPS 経由でユーザー指定のホストにアクセスするアプリケーションは、その FQDN を検索して支援を提供しようとする必要がありますか?

WBOY
WBOY転載
2024-02-14 14:42:07794ブラウズ

通过 HTTPS 访问用户指定主机的应用程序是否应该尝试通过查找其 FQDN 来提供帮助?

ユーザー指定のホスト上のアプリケーションに HTTPS 経由でアクセスすることは一般的な要件ですが、実際のアプリケーションでは混乱が生じる可能性があります。この問題については、PHP エディター Banana は、FQDN を検索して解決する必要があると考えています。 FQDN (完全修飾ドメイン名) は、ホスト名とドメイン名を含む完全修飾ドメイン名です。 FQDN を検索することで、ユーザーが指定したホストが正確に特定されることを確認できるため、正確なヘルプとサービスが提供されます。したがって、HTTPS アクセスを行う場合、FQDN を検索することは有益な戦略です。

質問内容

別のホスト上のHTTPS経由でサーバーと通信するgolangアプリケーションを使用しています。具体的には、コンテキストが重要な場合: 同じ Google Cloud プロジェクト内の GCE インスタンスから Dataproc クラスタと通信します(特別なドメインの設定は必要ありません)。

サーバーは自己署名証明書を生成します。これをクライアントに手動でインストールしました。

サーバーとクライアントはどちらも Google Cloud プロジェクトの GCE インスタンスです (FQDN は <hostname>.c.<project_id>.internal です)

golang の http.Client を使用してクライアントからサーバーに接続しようとすると、次のようなエラーが発生します。

リーリー

ただし、FQDN (<server_hostname>.c.<project_id>.internal) を渡すと、何も設定しなくても機能します。

参考までに、この動作は cURL を実行したときに表示される動作と一致しています:

リーリー

それでは私の質問は次のとおりです:

  1. なぜ短い/部分的なホスト名では機能しないのでしょうか?これは同じドメイン内にあるため、*.c.<project_id>.internal の一部であり、そのまま使用できます。それとも、渡された文字列を実際にワイルドカード文字列と一致させるために使用する必要があるのでしょうか (つまり、検索は行わず、fqdn を渡した場合にのみ機能します)。
  2. 配布用のアプリケーションを構築する際のベスト プラクティスは何ですか?短い名前を自己署名証明書で使用される可能性が高い長い名前に変換できるように FQDN を計算させるためのロジックを追加する必要があるか、それとも呼び出し元に謎のエラーを理解するように任せるべきかメッセージ?李>

注: 検証をスキップするつもりはありません。何が起こっているのかをよりよく理解し、ここでのベスト プラクティスが何であるかを知りたいだけです。

###ありがとう! ######解決######

証明書は、証明書に含まれる名前に基づいてドメイン/ホストと照合されるため、

および

<server_hostname>.c.<project_id>.internal## であっても、 # 同じコンテンツに解決され、証明書には 2 番目の証明書 (またはそれに一致するワイルドカード) のみが含まれます。これらは自己生成されるため、短い名前を SAN (Subject Alternative Name) として追加できます。 OpenSSL の追加フラグ:
  1. リーリー 公的 CA が、公的に解決できない SAN の証明書を提供する可能性はほとんどありません。 (いくつかの可能性がありますが、私は試していません) 例として、google.com.someevildomain.org
  2. から
google.com

にサービスを提供したくない、または信頼したくない場合、これはセキュリティ機能です。

状況によります。証明書を制御できる場合は、使用する名前を追加するだけです。これは、多くの SAN を持つ単一の証明書になる可能性があります。その場合は、全員が FQDN を使用して通信する方がクリーンになる可能性があります。多くの証明書をインポートできる場合は、各サービスに FQDN と短縮名を含む独自の証明書を持たせることをお勧めします。

以上がHTTPS 経由でユーザー指定のホストにアクセスするアプリケーションは、その FQDN を検索して支援を提供しようとする必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。