ASP.NET Core: Thêm và quản lý chứng chỉ TLS/SSL trong App Service Azure
Bạn có thể thêm chứng chỉ bảo mật kỹ thuật số để sử dụng trong mã ứng dụng của mình hoặc để bảo mật tên DNS tùy chỉnh trong App Service Azure, dịch vụ này cung cấp dịch vụ lưu trữ web tự vá, có khả năng mở rộng cao. Hiện được gọi là chứng chỉ Bảo mật tầng truyền tải (TLS), trước đây còn được gọi là chứng chỉ Lớp cổng bảo mật (SSL), những chứng chỉ riêng tư hoặc công khai này giúp bạn bảo mật các kết nối internet bằng cách mã hóa dữ liệu được gửi giữa trình duyệt của bạn, trang web bạn truy cập và máy chủ trang web.
Bảng sau liệt kê các tùy chọn để bạn thêm chứng chỉ trong App Service:
Lựa chọn | Mô tả |
---|---|
Tạo chứng chỉ được quản lý App Service miễn phí | Chứng chỉ riêng miễn phí và dễ sử dụng nếu bạn chỉ cần bảo mật miền tùy chỉnh của mình trong App Service. |
Nhập chứng chỉ App Service | Chứng chỉ riêng do Azure quản lý. Nó kết hợp tính đơn giản của quản lý chứng chỉ tự động và tính linh hoạt của các tùy chọn gia hạn và xuất. |
Nhập chứng chỉ từ Key Vault | Hữu ích nếu bạn sử dụng Azure Key Vault để quản lý chứng chỉ PKCS12 của mình. Xem Yêu cầu chứng chỉ cá nhân. |
Tải lên chứng chỉ riêng | Nếu bạn đã có chứng chỉ riêng từ nhà cung cấp bên thứ ba, bạn có thể tải chứng chỉ đó lên. Xem Yêu cầu chứng chỉ cá nhân. |
Tải lên chứng chỉ công khai | Chứng chỉ công khai không được sử dụng để bảo mật miền tùy chỉnh, nhưng bạn có thể tải chúng vào mã của mình nếu bạn cần chúng để truy cập tài nguyên từ xa. |
Ghi chú
Sau khi bạn tải chứng chỉ lên một ứng dụng, chứng chỉ sẽ được lưu trữ trong đơn vị triển khai được liên kết với tổ hợp nhóm tài nguyên, khu vực và hệ điều hành của gói App Service, được gọi nội bộ là không gian web . Bằng cách đó, chứng chỉ có thể truy cập được đối với các ứng dụng khác trong cùng nhóm tài nguyên và tổ hợp khu vực. Chứng chỉ được tải lên hoặc nhập vào App Service được chia sẻ với App Service trong cùng một đơn vị triển khai.
Điều kiện tiên quyết
- Tạo ứng dụng App Service. App Service Plan của ứng dụng phải ở cấp Basic, Standard, Premium hoặc Isolated. Xem Mở rộng quy mô ứng dụng để cập nhật cấp độ.
- Đối với chứng chỉ riêng tư, hãy đảm bảo rằng nó đáp ứng tất cả các yêu cầu từ App Service.
- Free certificate only:
- Ánh xạ miền nơi bạn muốn chứng chỉ tới App Service. Để biết thông tin, hãy xem Hướng dẫn: Ánh xạ tên DNS tùy chỉnh hiện có sang Dịch vụ ứng dụng Azure.
- Đối với miền gốc (như contoso.com chẳng hạn), hãy đảm bảo ứng dụng của bạn không có bất kỳ giới hạn IP nào được định cấu hình. Cả việc tạo chứng chỉ và gia hạn định kỳ cho miền gốc đều phụ thuộc vào việc ứng dụng của bạn có thể truy cập được từ internet hay không.
Yêu cầu chứng chỉ cá nhân
Chứng chỉ được quản lý App Service miễn phí và chứng chỉ App Service đã đáp ứng các yêu cầu của App Service. Nếu bạn chọn tải lên hoặc nhập chứng chỉ riêng vào App Service, thì chứng chỉ của bạn phải đáp ứng các yêu cầu sau:
- Đã xuất dưới dạng tệp PFX được bảo vệ bằng mật khẩu, được mã hóa bằng bộ ba DES.
- Chứa khóa riêng dài ít nhất 2048 bit
- Chứa tất cả các chứng chỉ trung gian và chứng chỉ gốc trong chuỗi chứng chỉ.
Để bảo mật miền tùy chỉnh trong liên kết TLS, chứng chỉ có nhiều yêu cầu hơn:
- Chứa Cách sử dụng khóa mở rộng để xác thực máy chủ (OID = 1.3.6.1.5.5.7.3.1)
- Được ký bởi cơ quan cấp chứng chỉ đáng tin cậy
Ghi chú
Chứng chỉ Mã hóa đường cong elip (ECC) hoạt động với App Service nhưng không được đề cập trong bài viết này. Để biết các bước chính xác để tạo chứng chỉ ECC, hãy làm việc với cơ quan cấp chứng chỉ của bạn.
Tạo chứng chỉ được quản lý miễn phí
Chứng chỉ miễn phí do App Service quản lý là giải pháp chìa khóa trao tay để bảo mật tên DNS tùy chỉnh của bạn trong App Service. Bạn không cần thực hiện bất kỳ hành động nào, chứng chỉ máy chủ TLS/SSL này được App Service quản lý hoàn toàn và được tự động gia hạn liên tục theo từng đợt sáu tháng, 45 ngày trước khi hết hạn, miễn là các điều kiện tiên quyết mà bạn thiết lập vẫn giữ nguyên. Tất cả các ràng buộc liên quan được cập nhật với chứng chỉ được gia hạn. Bạn tạo và liên kết chứng chỉ với một miền tùy chỉnh và để App Service thực hiện phần còn lại.
Quan trọng
Trước khi bạn tạo chứng chỉ được quản lý miễn phí, hãy đảm bảo rằng bạn đã đáp ứng các điều kiện tiên quyết cho ứng dụng của mình.
Giấy chứng nhận miễn phí được cấp bởi DigiCert. Đối với một số miền, bạn phải cho phép DigiCert làm tổ chức phát hành chứng chỉ một cách rõ ràng bằng cách tạo một bản ghi miền CAA có giá trị:
0 issue digicert.com
.Azure thay mặt bạn quản lý hoàn toàn các chứng chỉ, vì vậy mọi khía cạnh của chứng chỉ được quản lý, bao gồm cả tổ chức phát hành gốc, đều có thể thay đổi bất kỳ lúc nào. Những thay đổi này nằm ngoài tầm kiểm soát của bạn. Đảm bảo tránh các phụ thuộc cứng và "ghim" chứng chỉ hành nghề vào chứng chỉ được quản lý hoặc bất kỳ phần nào của hệ thống phân cấp chứng chỉ. Nếu bạn cần hành vi ghim chứng chỉ, hãy thêm chứng chỉ vào miền tùy chỉnh của bạn bằng bất kỳ phương pháp khả dụng nào khác trong bài viết này.
Chứng chỉ miễn phí đi kèm với những hạn chế sau:
- Không hỗ trợ chứng chỉ ký tự đại diện.
- Không hỗ trợ sử dụng làm chứng chỉ ứng dụng khách bằng cách sử dụng dấu vân tay của chứng chỉ, được lên kế hoạch ngừng sử dụng và xóa.
- Không hỗ trợ DNS riêng.
- Không xuất được.
- Không được hỗ trợ trong Môi trường dịch vụ ứng dụng (ASE).
- Chỉ hỗ trợ các ký tự chữ và số, dấu gạch ngang (-) và dấu chấm (.).
- Đối với miền chính
- Phải có bản ghi A trỏ đến địa chỉ IP của ứng dụng web của bạn.
- Không được hỗ trợ trên các ứng dụng không thể truy cập công khai.
- Không được hỗ trợ với các miền gốc được tích hợp với Trình quản lý lưu lượng.
- Phải đáp ứng tất cả những điều trên để được cấp và gia hạn chứng chỉ thành công.
- Đối với miền phụ
- Phải ánh xạ CNAME trực tiếp tới
<app-name>.azurewebsites.net
hoặc trafficmanager.net. Việc ánh xạ tới một giá trị CNAME trung gian sẽ chặn việc cấp và gia hạn chứng chỉ. - Phải đáp ứng tất cả những điều trên để cấp và gia hạn chứng chỉ thành công.
- Phải ánh xạ CNAME trực tiếp tới
1. Trong cổng Azure, từ menu bên trái, chọn App Services > <app-name>.
2. Trên menu điều hướng của ứng dụng, hãy chọn Certificates. Trong ngăn Managed certificates, chọn Add certificate.
3. Chọn miền tùy chỉnh cho chứng chỉ miễn phí, sau đó chọn Validate. Khi quá trình xác thực hoàn tất, hãy chọn Add. Bạn chỉ có thể tạo một chứng chỉ được quản lý cho mỗi miền tùy chỉnh được hỗ trợ.
Khi thao tác hoàn tất, chứng chỉ sẽ xuất hiện trong danh sách Managed certificates.
4. Để bảo mật miền tùy chỉnh bằng chứng chỉ này, bạn vẫn phải tạo ràng buộc chứng chỉ. Làm theo các bước trong Bảo mật tên DNS tùy chỉnh bằng liên kết TLS/SSL trong App Service Azure.
Nhập chứng chỉ App Service
Để nhập chứng chỉ App Service, trước tiên hãy mua và định cấu hình chứng chỉ App Service, sau đó làm theo các bước tại đây.
1. Trong cổng Azure, từ menu bên trái, chọn App Services > <app-name>.
2. Từ menu điều hướng của ứng dụng, hãy chọn Certificates > Bring your own certificates (.pfx) > Add certificate.
3. Trong Source, chọn Import App Service Certificate.
4. Trong App Service certificate, chọn chứng chỉ bạn vừa tạo.
5. Trong Certificate friendly name, hãy đặt tên cho chứng chỉ trong ứng dụng của bạn.
6. Chọn Validate. Khi xác thực thành công, hãy chọn Add.
Khi thao tác hoàn tất, chứng chỉ sẽ xuất hiện trong danh sách Bring your own certificates.
7. Để bảo mật miền tùy chỉnh bằng chứng chỉ này, bạn vẫn phải tạo ràng buộc chứng chỉ. Làm theo các bước trong Bảo mật tên DNS tùy chỉnh bằng liên kết TLS/SSL trong App Service Azure.
Nhập chứng chỉ từ Key Vault
Nếu sử dụng Azure Key Vault để quản lý chứng chỉ của mình, thì bạn có thể nhập chứng chỉ PKCS12 vào App Service từ Key Vault nếu bạn đáp ứng các yêu cầu.
Cho phép App Service đọc từ vault
Theo mặc định, nhà cung cấp tài nguyên App Service không có quyền truy cập kho khóa của bạn. Để sử dụng kho khóa cho việc triển khai chứng chỉ, bạn phải cấp quyền truy cập đọc cho nhà cung cấp tài nguyên đối với key vault.
Ghi chú
Hiện tại, chứng chỉ Key Vault chỉ hỗ trợ chính sách truy cập Key Vault, không hỗ trợ mô hình RBAC.
Nhà cung cấp tài nguyên | AppId chính của dịch vụ | Quyền bí mật key vault | Quyền đối với chứng chỉ key vault |
---|---|---|---|
App Service Microsoft Azure hoặc Microsoft.Azure.WebSites | - abfa0a7c-a6b6-4736-8310-5855508787cd , giống nhau cho tất cả các đăng ký Azure- Đối với môi trường đám mây Azure Government, hãy sử dụng 6a02c803-dafd-4136-b4c3-5a6f318b4714 . |
Get | Get |
Microsoft.Azure.CertificateRegistration | Get List Set Delete |
Get List |
Nhập chứng chỉ từ key vault của bạn vào ứng dụng của bạn
1. Trong cổng Azure, từ menu bên trái, chọn App Services > <app-name>.
2. Từ menu điều hướng của ứng dụng, hãy chọn Certificates > Bring your own certificates (.pfx) > Add certificate.
3. Trong Source, chọn Import from Key Vault.
4. Chọn Select key vault certificate.
5. Để giúp bạn chọn chứng chỉ, hãy sử dụng bảng sau:
Cài đặt | Mô tả |
---|---|
Subscription | Đăng ký được liên kết với key vault. |
Key vault | Key vault có chứng chỉ mà bạn muốn nhập. |
Certificate | Từ danh sách này, hãy chọn chứng chỉ PKCS12 trong key vault. Tất cả các chứng chỉ PKCS12 trong key vault đều được liệt kê bằng dấu vân tay của chúng, nhưng không phải tất cả đều được hỗ trợ trong App Service. |
6. Khi hoàn tất lựa chọn của bạn, hãy chọn Select, Validate, sau đó chọn Add.
Khi thao tác hoàn tất, chứng chỉ sẽ xuất hiện trong danh sách Bring your own certificates. Nếu quá trình nhập không thành công và xảy ra lỗi thì chứng chỉ không đáp ứng các yêu cầu đối với App Service.
Ghi chú
Nếu bạn cập nhật chứng chỉ của mình trong Key Vault bằng chứng chỉ mới, App Service sẽ tự động đồng bộ hóa chứng chỉ của bạn trong vòng 24 giờ.
7. Để bảo mật miền tùy chỉnh bằng chứng chỉ này, bạn vẫn phải tạo ràng buộc chứng chỉ. Làm theo các bước trong Bảo mật tên DNS tùy chỉnh bằng liên kết TLS/SSL trong App Service Azure.
Tải lên chứng chỉ riêng
Sau khi bạn nhận được chứng chỉ từ nhà cung cấp chứng chỉ của mình, hãy làm cho chứng chỉ sẵn sàng cho App Service bằng cách làm theo các bước trong phần này.
Hợp nhất chứng chỉ trung gian
Nếu tổ chức phát hành chứng chỉ cấp cho bạn nhiều chứng chỉ trong chuỗi chứng chỉ, bạn phải hợp nhất các chứng chỉ theo cùng một thứ tự.
1. Trong trình soạn thảo văn bản, hãy mở từng chứng chỉ đã nhận.
2. Để lưu trữ chứng chỉ đã hợp nhất, hãy tạo một tệp có tên mergecertificate.crt.
3. Sao chép nội dung cho từng chứng chỉ vào tệp này. Đảm bảo tuân theo trình tự chứng chỉ do chuỗi chứng chỉ chỉ định, bắt đầu bằng chứng chỉ của bạn và kết thúc bằng chứng chỉ gốc, ví dụ:
-----BEGIN CERTIFICATE-----
<your entire Base64 encoded SSL certificate>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<The entire Base64 encoded intermediate certificate 1>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<The entire Base64 encoded intermediate certificate 2>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<The entire Base64 encoded root certificate>
-----END CERTIFICATE-----
Xuất chứng chỉ riêng đã hợp nhất sang PFX
Bây giờ, hãy xuất chứng chỉ TLS/SSL đã hợp nhất của bạn bằng khóa riêng đã được sử dụng để tạo yêu cầu chứng chỉ của bạn. Nếu bạn đã tạo yêu cầu chứng chỉ của mình bằng OpenSSL, thì bạn đã tạo một tệp khóa riêng tư.
Ghi chú
OpenSSL v3 đã thay đổi mật mã mặc định từ 3DES thành AES256, nhưng điều này có thể bị ghi đè trên dòng lệnh -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1. OpenSSL v1 sử dụng 3DES làm mặc định, vì vậy các tệp PFX được tạo được hỗ trợ mà không có bất kỳ sửa đổi đặc biệt nào.
1. Để xuất chứng chỉ của bạn sang tệp PFX, hãy chạy lệnh sau, nhưng thay thế các trình giữ chỗ <private-key-file> và <merged-certificate-file> bằng các đường dẫn đến khóa riêng tư và tệp chứng chỉ đã hợp nhất của bạn.
openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>
2. Khi bạn được nhắc, hãy chỉ định mật khẩu cho thao tác xuất. Khi bạn tải chứng chỉ TLS/SSL của mình lên App Service sau này, bạn phải cung cấp mật khẩu này.
3. Nếu bạn đã sử dụng IIS hoặc Certreq.exe để tạo yêu cầu chứng chỉ của mình, hãy cài đặt chứng chỉ vào máy tính cục bộ của bạn, sau đó xuất chứng chỉ sang tệp PFX.
Tải chứng chỉ lên App Service
Bây giờ bạn đã sẵn sàng tải chứng chỉ lên App Service.
1. Trong cổng Azure, từ menu bên trái, chọn App Services > <app-name>.
2. Từ menu điều hướng của ứng dụng, hãy chọn Certificates > Bring your own certificates (.pfx) > Upload Certificate.
3. Để giúp bạn tải chứng chỉ .pfx lên, hãy sử dụng bảng sau:
Cài đặt | Sự miêu tả |
---|---|
PFX certificate file | Chọn tệp .pfx của bạn. |
Certificate password | Nhập mật khẩu mà bạn đã tạo khi xuất tệp PFX. |
Certificate friendly name | Tên chứng chỉ sẽ được hiển thị trong ứng dụng web của bạn. |
4. Khi hoàn tất lựa chọn của bạn, hãy chọn Select, Validate, sau đó chọn Add.
Khi thao tác hoàn tất, chứng chỉ sẽ xuất hiện trong danh sách Bring your own certificates.
5. Để bảo mật miền tùy chỉnh bằng chứng chỉ này, bạn vẫn phải tạo ràng buộc chứng chỉ. Làm theo các bước trong Bảo mật tên DNS tùy chỉnh bằng liên kết TLS/SSL trong App Service Azure.
Tải lên chứng chỉ công khai
Chứng chỉ công khai được hỗ trợ ở định dạng .cer.
1. Trong cổng Azure, từ menu bên trái, chọn App Services > <app-name>.
2. Từ menu điều hướng của ứng dụng, hãy chọn Certificates > Public key certificates (.cer) > Add certificate.
3. Để giúp bạn tải chứng chỉ .cer lên, hãy sử dụng bảng sau:
Cài đặt | Mô tả |
---|---|
CER certificate file | Chọn tệp .cer của bạn. |
Certificate friendly name | Tên chứng chỉ sẽ được hiển thị trong ứng dụng web của bạn. |
4. Khi bạn hoàn tất, hãy chọn Add.
5. Sau khi chứng chỉ được tải lên, hãy sao chép dấu vân tay của chứng chỉ, sau đó xem lại Làm cho chứng chỉ có thể truy cập được.
Gia hạn chứng chỉ hết hạn
Trước khi chứng chỉ hết hạn, hãy đảm bảo thêm chứng chỉ đã gia hạn vào App Service và cập nhật mọi liên kết chứng chỉ khi quy trình phụ thuộc vào loại chứng chỉ. Ví dụ: chứng chỉ được nhập từ Key Vault, bao gồm chứng chỉ App Service, tự động đồng bộ hóa với App Service 24 giờ một lần và cập nhật liên kết TLS/SSL khi bạn gia hạn chứng chỉ. Đối với chứng chỉ đã tải lên, không có cập nhật ràng buộc tự động. Dựa trên tình huống của bạn, hãy xem lại phần tương ứng:
Gia hạn chứng chỉ đã tải lên
Khi bạn thay thế chứng chỉ hết hạn, cách bạn cập nhật ràng buộc chứng chỉ bằng chứng chỉ mới có thể ảnh hưởng xấu đến trải nghiệm người dùng. Ví dụ: địa chỉ IP gửi đến của bạn có thể thay đổi khi bạn xóa một liên kết, ngay cả khi liên kết đó dựa trên IP. Kết quả này đặc biệt có tác động khi bạn gia hạn chứng chỉ đã có trong ràng buộc dựa trên IP. Để tránh thay đổi địa chỉ IP của ứng dụng và để tránh thời gian ngừng hoạt động cho ứng dụng của bạn do lỗi HTTPS, hãy làm theo các bước sau theo trình tự được chỉ định:
2. Truy cập trang Custom domain cho ứng dụng của bạn, chọn nút hành động ... và chọn Update binding.
3. Chọn chứng chỉ mới và chọn Update.
4. Xóa chứng chỉ hiện có.
Gia hạn chứng chỉ được nhập từ Key Vault
Ghi chú
Để gia hạn chứng chỉ App Service, hãy xem Gia hạn chứng chỉ App Service.
Để gia hạn chứng chỉ mà bạn đã nhập vào App Service từ Key Vault, hãy xem lại Gia hạn chứng chỉ Azure Key Vault của bạn.
Sau khi chứng chỉ gia hạn bên trong kho khóa của bạn, App Service sẽ tự động đồng bộ hóa chứng chỉ mới và cập nhật mọi ràng buộc chứng chỉ hiện hành trong vòng 24 giờ. Để đồng bộ thủ công, hãy làm theo các bước sau:
1. Truy cập trang Certificate của ứng dụng của bạn.
2. Trong Bring your own certificates (.pfx), hãy chọn nút chi tiết ... cho chứng chỉ key vault đã nhập, sau đó chọn Sync.
Các câu hỏi thường gặp
- Làm cách nào tôi có thể tự động thêm chứng chỉ mang theo của riêng bạn vào ứng dụng?
- Câu hỏi thường gặp về chứng chỉ App Service
Làm cách nào tôi có thể tự động thêm chứng chỉ mang theo của riêng bạn vào ứng dụng?
- Azure CLI: Liên kết chứng chỉ TLS/SSL tùy chỉnh với ứng dụng web
- Azure PowerShell Liên kết chứng chỉ TLS/SSL tùy chỉnh với ứng dụng web bằng PowerShell
Tham khảo thêm
- Bảo mật tên DNS tùy chỉnh bằng liên kết TLS/SSL trong App Service Azure
- Thực thi HTTPS
- Thực thi TLS 1.1/1.2
- Sử dụng chứng chỉ TLS/SSL trong mã của bạn trong App Service Azure
- Câu hỏi thường gặp: Chứng chỉ App Service