ユーザー指定のホスト上のアプリケーションに 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 を実行したときに表示される動作と一致しています:
リーリーそれでは私の質問は次のとおりです:
*.c.<project_id>.internal
の一部であり、そのまま使用できます。それとも、渡された文字列を実際にワイルドカード文字列と一致させるために使用する必要があるのでしょうか (つまり、検索は行わず、fqdn を渡した場合にのみ機能します)。 注: 検証をスキップするつもりはありません。何が起こっているのかをよりよく理解し、ここでのベスト プラクティスが何であるかを知りたいだけです。
###ありがとう! ######解決######証明書は、証明書に含まれる名前に基づいてドメイン/ホストと照合されるため、
公的 CA が、公的に解決できない SAN の証明書を提供する可能性はほとんどありません。 (いくつかの可能性がありますが、私は試していません)
例として、
google.com.someevildomain.orgにサービスを提供したくない、または信頼したくない場合、これはセキュリティ機能です。
状況によります。証明書を制御できる場合は、使用する名前を追加するだけです。これは、多くの SAN を持つ単一の証明書になる可能性があります。その場合は、全員が FQDN を使用して通信する方がクリーンになる可能性があります。多くの証明書をインポートできる場合は、各サービスに FQDN と短縮名を含む独自の証明書を持たせることをお勧めします。
以上がHTTPS 経由でユーザー指定のホストにアクセスするアプリケーションは、その FQDN を検索して支援を提供しようとする必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。