php エディタ Baicao がクライアントから TLS 情報を取得する方法を紹介します。 Web サイトの開発プロセス中、クライアントの TLS 情報を取得することは、セキュリティ関連の機能を実装するために非常に重要です。 TLS は、ネットワーク通信を保護するために使用される暗号化プロトコルです。クライアントのTLS情報を取得することで、クライアントの証明書情報、暗号化アルゴリズム、鍵の長さなどの関連情報を取得し、Webサイトのセキュリティを向上させることができます。次の記事では、クライアントから TLS 情報を取得する方法と、この情報を適用して Web サイトのセキュリティを強化する方法について詳しく説明します。
net/http go パッケージには、ConnectionState
を保持するフィールド TLS を定義するタイプ リクエストがあります。ただし、説明の最後のステートメントは、HTTP クライアントによって無視されることを示しています。デバッグ中にも確認しましたが、nil
でした。
サーバーに登録/送信する前に、その接続状態 (または他の場所) から値 TLSUnique
を取得して、それを証明書リクエスト (別名 CSR) に含める必要があります。
サーバーはリクエストを受信し、CSR の署名と TLS の一意の値をチェックし、TLS 接続を確立しているクライアントが CSR に署名したクライアントと同じであることを証明します。
これは RFC 7030 - セクション 3.5 (EST プロトコル) からのものです
[使用しているもの]
GlobalSign EST Go パッケージを試していますが、この機能は含まれていないようです。
彼らの EST クライアントは、EST 操作ごとに http クライアントを作成するようです。この動作を変更して、1 つのクライアントにすべてのリクエストを送信できるようにできると考えました。
ただし、クライアントは RoundTripper インターフェイスを受け入れるため、基盤となる接続の情報を実装の外で使用することはできません。
1 つの方法では、 グローバル シンボル EST パッケージ .
にいくつかの小さな変更を加える必要があります。前に述べたように、現在の実装では、EST 操作 (CACerts、CSRAttrs、Enroll など) ごとに新しい http クライアントが作成されます。
1- すべての EST 操作に http クライアントを使用しましょう。
2- いずれの場合も、CSR を登録する前に、呼び出して CA 証明書を取得する必要があります。
3- クライアント要求に対する http 応答は、フィールド http.Response.TLS.TLSUnique
を公開します。
4- クライアントに証明書リクエストにそれを含めてもらい、署名して登録してもらいます。
EST パッケージの グローバル シンボル と、毎回新しい http クライアントを作成する理由について考えるとき。
(ユーザーの希望に応じてサンプルが使用されるのを待っている場合を除く)
以上がクライアントからTLS情報を取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。