EnableSslCertificateVerification設定を true に設定することに関して、ここに質問を投稿しました。Windows では機能しません。SSL ハンドシェークが失敗します。
これは、次のようにSslCaLocation設定を追加することで解決されることがわかりました。
"Dev-on-Windows": {
"commandName": "Project",
"environmentVariables": {
"Kafka__BootstrapServers": "myloadbalancer.myhost.corp:9094",
"Kafka__EnableSslCertificateVerification": "true",
"Kafka__SchemaRegistryUrl": "myschemareg.myhost.corp:8081,myschemreg2.myhost.corp:8081",
"Kafka__SecurityProtocol": "SaslSsl",
"Kafka__SslCaLocation": "cacert.pem",
"Kafka__SaslMechanism": "Gssapi",
"Kafka__ClientId": "DotNetCoreReferenceApplication",
"Kafka__ErrorTolerance": "Moderate",
"Kafka__Debug" : "all",
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "https://localhost:5001;http://localhost:5000"
},
cacert.pem ファイルは、証明書の署名 PK を単に連結したものです。それはうまくいきます。理想的には、Windows で信頼されたルート ストアを確認できるはずなのに、なぜそれが必要なのかわかりません。
アップデート
2 つの証明書が必要です。1 つは信頼されたルート証明機関にあり、もう 1 つは中間証明機関にあります。
SslCaLocation構成を削除し、2 番目の証明書を中間ストアからルート ストアにインポートしただけで機能しました。
Confluent Client Lib for Kafka / librdkafka for Windows は中間証明書ストアを調べませんか?