如何将SSL添加到Azure容器实例应用程序?

时间:2020-03-31 19:05:38

标签: azure docker ssl dns azure-container-instances

正如标题所述,我需要为Azure容器实例中托管的应用设置SSL,但是,我不确定应该从哪里开始。

我有一个通过Azure容器实例托管的容器化应用程序,其地址为http://myApp.northamerica.azurecontainer.io。该地址被http://api.myApp.com上的“官方”地址掩盖。

是否有任何原因不能将SSL添加到表面域@ http://api.myApp.com,而重定向到真实域@ http://myApp.northamerica.azurecontainer.io?还是我需要将SSL添加到两个域?

此外,如果我需要使用SSL保护两个域,是否需要为每个域分别获得证书?

Azure提供SSL证书服务,但我只需要知道采取的最佳途径。谢谢。

2 个答案:

答案 0 :(得分:7)

据我所知,当前尚无内置支持,请参阅this

但是,您可以有多种选择来为ACI应用程序启用SSL连接。

如果您将容器组部署在Azure virtual network中,则可以考虑其他选项来为后端容器实例启用SSL端点,包括:

标准SSL证书映射到唯一的域名,因此每个域都需要单独的证书。

您可以开始在Sidecar容器中将Nginx设置为SSL提供程序,并且需要域api.myApp.com的SSL证书。如果要使用域myApp.northamerica.azurecontainer.io进行单独的安全访问,则可以在Nginx配置文件中配置额外的服务器块。请参阅configuring HTTPS server in Nginx

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.crt;
    ssl_certificate_key www.example.com.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ...
}

答案 1 :(得分:5)

在经历了研究的痛苦之后,我们终于找到了如何使用Caddy Docker映像作为辅助工具来向容器实例添加SSL。 Caddy使自动续订和验证所有权以颁发SSL变得容易。

我们写了一篇博客文章来帮助其他有相同问题的人。希望这可以帮助。

https://www.antstack.io/blog/how-to-enable-tls-for-hasura-graphql-engine-in-azure-caddy/