LoadBalancerを使用してセキュリティで保護されたServiceFabricクラスター(EncryptAndSign)をAzureサブスクリプションにデプロイしました。展開には時間がかかりましたが、期待どおりに機能しました。また、PowerShellを介してクラスターに接続できます。
$connectionEndpoint = ("{0}.{1}.cloudapp.Azure.com:19000" -f
"mycluster", "somewhere")
Connect-serviceFabricCluster -ConnectionEndpoint $connectionEndpoint `
-KeepAliveIntervalInSec 10 `
-X509Credential `
-ServerCertThumbprint "..." `
-FindType FindByThumbprint `
-FindValue $clusterCertificate.Thumbprint `
-StoreLocation CurrentUser -StoreName My
VisualStudioを使用して、ポート19000を介してアプリケーションをクラスターに展開することもできます。 Azure Portal内では、すべてが正常に見え、警告もエラーもありません。
残念ながら、ポート19080経由でエクスプローラーに接続できません。 LoadBalancerを介して接続しようとすると、接続タイムアウトが発生します。そのため、クラスター内のノードの1つへのRDP接続を確立し、を介してローカルでエクスプローラーにアクセスしようとしました
localhost:19080/Explorer
しかし、ここでHttp-Error 403(Forbidden)を受け取ります。これが、Load-Balancerを介した接続タイムアウトの理由である可能性があります(プローブは常に403を受信しているため)。 Azureドキュメント に準拠:
「安全なクラスターでServiceFabric Explorerに接続しようとすると、アクセスするためにブラウザーから証明書の提示を求められます。」
さて、私は証明書を提示するように促されませんでした。私は何か見落としてますか?設定する特別なものはありますか?前もって感謝します。
さて、これはそれほどトリッキーではありませんでした-しかし、あなたはそれを知っている必要があり、私はまだどこにもそれを読んでいませんでした。 Andminクライアント証明書を構成しない限り、Explorer(:19080/Explorer)へのすべての要求は上記のように403になります。
また、(テストされていない)ARMテンプレートの次の設定でも機能するはずです:
{
"type": "Microsoft.ServiceFabric/clusters",
...
"properties": {
...
"ClientCertificateThumbprints": [
{
"CertificateThumbprint": "THUMBPRINT_HERE",
"IsAdmin": true
}
],
...
}
}
ご覧のとおり、この配列で複数の証明書を指定することは可能です(テストもされていません)。
必ずSHA1フィンガープリントハッシュを生成して使用してください。 SHA256フィンガープリントはAzurePortalから入力できますが、問題が何であるかについての警告なしにHTTP403応答が返されます。