2016-05-02 26 views
6

Vì vậy, tôi có một Api Web được lưu trữ trên Vải dịch vụ Azure mà tôi muốn hiển thị qua https.Api không quốc tịch trên dịch vụ Azure Vải qua https

Câu hỏi đầu tiên: thực sự có chứng chỉ mặc định cho * .cloudapp.azure.com do Microsoft cung cấp tương tự như Dịch vụ ứng dụng không?

Nếu không có, làm cách nào để có chứng chỉ hợp lệ (do CA nổi tiếng cấp) cho miền tôi không sở hữu?

Trong trường hợp bằng cách nào đó tôi có thể cần tải lên chứng chỉ này lên Azure Vault và tham chiếu dấu vân tay của nó trong tệp kê khai dịch vụ đúng không?

Tôi có được sử dụng cùng một chứng chỉ để bảo mật cụm và hiển thị điểm cuối SSL không?

Cảm ơn!

Trả lời

9

Không có chứng chỉ ký tự đại diện cho * .cloudapp.azure.com như có dành cho * .azurewebsites.net. Đối với SSL, bạn sẽ phải đăng ký miền của riêng bạn và hoặc là CNAME nó vào miền cụm của bạn (ví dụ: mycluster.westus.cloudapp.azure.com) hoặc nhận IP công khai tĩnh cho VIP cân bằng tải của bạn và trỏ bản ghi A của bạn tới (more on public IPs in Azure here). Sau đó, mua chứng chỉ cho miền đó từ CA yêu thích của bạn.

Khi bạn có chứng chỉ, bạn sẽ lưu trữ trong Key Vault (đảm bảo bạn đặt -EnabledForDeployment khi tạo Key Vault!) Và đặt trong mẫu ARM nhóm (to get it installed on your nodes).

Để sử dụng HTTPS, đầu tiên thiết lập một tham chiếu cert trong ApplicationManifest.xml:

<Certificates> 
    <EndpointCertificate X509FindValue="<Your Certificate Thumbprint>" Name="Cert1" /> 
</Certificates> 

Sau đó thiết lập một EndpointBindindPolicy trong phần ServiceManifestImport của Ứng dụng Manifest:

<ServiceManifestImport> 
... 
    <Policies> 
     <EndpointBindingPolicy EndpointRef="ServiceEndpoint" CertificateRef="Cert1" /> 
    </Policies> 
</ServiceManifestImport> 

Và cuối cùng, tham chiếu đến chứng chỉ trong cấu hình Endpoint của bạn trong ServiceManifest.xml:

<Endpoints> 
    <Endpoint Name="ServiceEndpoint" Type="Input" Protocol="https" Port="443" CertificateRef="Cert1"/> 
</Endpoints> 

Bạn thể sử dụng các CERT cùng để bảo đảm cluster của bạn và cung cấp SSL cho người dùng, nhưng tôi muốn giới thiệu một cert khác nhau để bạn không phân phát cert máy chủ của bạn đối với khách hàng để xác thực cluster.

EDIT: Một cũng có thể sử dụng Azure Application Gateway hỗ trợ SSL Offloading. Sau đó, nó sẽ xử lý các khía cạnh HTTPS và nói HTTP trở lại cluster

+0

Câu trả lời hay, cảm ơn – Helikaon

+0

Nếu dịch vụ không thể kích hoạt sau khi bạn thực hiện bước này, một trong những lý do là khi bạn sao chép dấu vân tay từ MMC nó sao chép một số biểu tượng vô hình ở đầu chuỗi, chỉ cần nhập thủ công hoặc sao chép đầu tiên vào một số trình soạn thảo đơn giản như Notepad – ShadowCode

+0

Mẹo đó để chuyển sang Azure Application Gateway có thể là tốt nhất mà tôi đã thấy trong một thời gian. rollover và thumbprints được thay thế .. Service Fabric không hủy đăng ký "netsh http sslcert" từ cổng và sau đó than phiền nó đã được sử dụng .. Tôi sẽ đi điều tra bằng Azure Application Gateway để sử dụng SSL Offloading – rfcdejong

Các vấn đề liên quan