自己署名証明書を使用した TLS 接続の確立
自己署名証明書を使用して TLS 接続を確立する場合、クライアントを適切に構成することが重要です証明書関連のエラーを回避するためのサーバー側。
クライアント考慮事項
クライアント コードは、自己署名サーバー証明書を CA プールに追加する必要があります。このプールには、クライアントによって信頼された証明書が含まれています。サーバー証明書をプールに追加すると、クライアントはそれを効果的に信頼します。
これは、次のコード スニペットに示すように、tls.Config 構造を使用して実現できます。
CA_Pool := x509.NewCertPool() serverCert, err := ioutil.ReadFile("./cert.pem") if err != nil { log.Fatal("Could not load server certificate!") } CA_Pool.AppendCertsFromPEM(severCert) config := tls.Config{RootCAs: CA_Pool}
サーバーに関する考慮事項
自己署名証明書の場合、サーバーには独自のルートとして追加された同じ証明書が必要ですカリフォルニア州。これにより、サーバーがそれ自身に証明書を発行する権限を持っていることが保証されます。
これを実現するには、次のコード スニペットを使用します:
cert, err := tls.LoadX509KeyPair("./cert.pem", "./key.pem") config := tls.Config{Certificates: []tls.Certificate{cert}}
よくある間違い
自己署名証明書を生成するときによくある間違いは、IsCA フラグを設定しないことです。このフラグは、証明書が CA として使用できることを示します。このフラグがないと、証明書は自身の署名を検証できない可能性があります。
正しいコードには次のものが含まれている必要があります:
x509.CreateCertificate(&opts, &opts, &rootTemplate, rootKey)
IsCA フラグを設定すると、自己署名証明書は正しく生成されれば、クライアントはサーバーの証明書チェーンを正常に検証できるようになります。
以上が自己署名証明書を使用して TLS 接続を適切に構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。