Как загрузить сертификат в шлюз приложений через шаблон Azure ARM - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь загрузить сертификат на шлюз приложения через мой шаблонный скрипт ARM. Как это сделать через скрипт ARM. Ниже мой сценарий:

"backendHttpSettingsCollection": [
                    {
                        "name": "appGatewayBackendHttpSettings",
                        "properties": {
                            "Port": 80,
                            "Protocol": "Http",
                            "CookieBasedAffinity": "Disabled"
                        }
                    },
                    {
                        "name": "httpssettings",
                        "etag": "W/\"f5659c7c-d83a-431b-b456-097622a27c7b\"",
                        "properties": {
                            "provisioningState": "Succeeded",
                            "port": 8443,
                            "protocol": "Https",
                            "cookieBasedAffinity": "Enabled",
                            "connectionDraining": {
                                "enabled": false,
                                "drainTimeoutInSec": 60
                            },
                            "pickHostNameFromBackendAddress": false,
                            "path": null,
                            "requestTimeout": 300,
                            "authenticationCertificates": [
                                {
                                    "id": "[parameters('sslCertData')]"
                                }
                            ]
                        },
                        "type": "Microsoft.Network/applicationGateways/backendHttpSettingsCollection"
                    },
                    {
                        "name": "scalablehttpsettings",
                        "etag": "W/\"f5659c7c-d83a-431b-b456-097622a27c7b\"",
                        "properties": {
                            "provisioningState": "Succeeded",
                            "port": 7443,
                            "protocol": "Https",
                            "cookieBasedAffinity": "Enabled",
                            "connectionDraining": {
                                "enabled": false,
                                "drainTimeoutInSec": 60
                            },
                            "pickHostNameFromBackendAddress": false,
                            "path": null,
                            "requestTimeout": 300,
                            "authenticationCertificates": [
                                {
                                    "id": "[parameters('sslCertData')]"
                                }
                            ]
                        },
                        "type": "Microsoft.Network/applicationGateways/backendHttpSettingsCollection"
                    }
                ],

Мне интересно, как указать путь к сертификату для параметров ('sslCertData') в параметрах authenticationCertificates. Может ли кто-нибудь помочь мне здесь, пожалуйста.

PS: сертификат в формате .cer.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018
We have to use and declare as shown below. It works like a charm.

"httpscertificate": { 
        "defaultValue":"Base64 converted value"
    "type": "string"
        },

"authenticationCertificates": [
                    {
                        "properties": {
                            "data": "[parameters('httpscertificate')]"
                        },
                        "name": "Appgatewaybackendcert"
                    }
                ],

"backendHttpSettingsCollection": [
                    {
                        "name": "appGatewayBackendHttpSettings",
                        "properties": {
                            "Port": 80,
                            "Protocol": "Http",
                            "CookieBasedAffinity": "Disabled"
                        }
                    },
                    {
                        "name": "nonscalablehttpssettings",
                        "etag": "W/\"f5659c7c-d83a-431b-b456-097622a27c7b\"",
                        "properties": {
                            "provisioningState": "Succeeded",
                            "port": 8443,
                            "protocol": "Https",
                            "cookieBasedAffinity": "Disabled",
                            "connectionDraining": {
                                "enabled": false,
                                "drainTimeoutInSec": 60
                            },
                            "pickHostNameFromBackendAddress": false,
                            "path": null,
                            "requestTimeout": 300,
                            "authenticationCertificates": [
                                {
                                    "Id": "[concat(variables('applicationGatewayID'), '/authenticationCertificates/checkpointsystems')]" //appGatewayBackendCert
                                }
                            ]
                        },
                        "type": "Microsoft.Network/applicationGateways/backendHttpSettingsCollection"
                    },
                    {
                        "name": "scalablehttpsettings",
                        "etag": "W/\"f5659c7c-d83a-431b-b456-097622a27c7b\"",
                        "properties": {
                            "provisioningState": "Succeeded",
                            "port": 7443,
                            "protocol": "Https",
                            "cookieBasedAffinity": "Disabled",
                            "connectionDraining": {
                                "enabled": false,
                                "drainTimeoutInSec": 60
                            },
                            "pickHostNameFromBackendAddress": false,
                            "path": null,
                            "requestTimeout": 300,
                            "authenticationCertificates": [
                                {
                                    "Id": "[concat(variables('applicationGatewayID'), '/authenticationCertificates/checkpointsystems')]"
                                }
                            ]
                        },
                        "type": "Microsoft.Network/applicationGateways/backendHttpSettingsCollection"
                    }
                ],
0 голосов
/ 07 сентября 2018

вы не можете сделать это напрямую.вам нужно преобразовать сертификат в base64 и передать его как base64 на шлюз приложения.Кроме того, я вполне уверен, что вы не можете использовать .cer для слушателей, только для аутентификации (так что сквозной SSL).рабочий пример:

"sslCertificates": [ // these certificates can be used for listeners
    {
        "name": "offloadCertificate",
        "properties": {
            "data": "base64_value_of_.pfx",
            "password": "password_for_.pfx"
        }
    }
],
"authenticationCertificates": [ // these only for end-to-end ssl
    {
        "name": "authenticationCertificate",
        "properties": {
            "data": "base64_value_of_.cer"
        }
    }
]
...