IIS 7.0 - Chứng chỉ SSL - gia hạn hay mới?


13

Một trong những chứng chỉ SSL của tôi (chỉ xác minh tên miền đơn giản) sắp hết hạn trên máy chủ Windows 2003 IIS 7.0.

Tôi đã nhận được đề nghị tốt hơn từ một nhà cung cấp khác và những người ban đầu cấp chứng chỉ của tôi không muốn thương lượng giá thấp hơn.

Dù sao - đi qua trình hướng dẫn chứng chỉ trong IIS, tôi có tùy chọn "gia hạn" hoặc "gỡ cài đặt" và sau đó cài đặt chứng chỉ mới.

Vậy - tôi có thể sử dụng tùy chọn "gia hạn" để tạo yêu cầu chứng chỉ và chuyển yêu cầu này cho nhà cung cấp mới hay tôi cần bắt đầu với yêu cầu "mới"? Nó có quan trọng đối với nhà cung cấp mới, rằng chứng chỉ trước đó đã được cấp bởi người ký khác?

Vấn đề là, tôi không muốn dừng máy chủ (ít nhất là phần được bảo mật) vì xóa chứng chỉ cũ và tạo CSR mới, và chờ chứng chỉ mới cài đặt.

Hoặc, có một tùy chọn để chuẩn bị CSR mới mà không cần xóa chứng chỉ cũ không?

Câu trả lời:


7

Bạn chỉ cần tạo một trang web tạm thời với IIS 6.0. IIS 7.0 cho phép bạn tạo nhiều yêu cầu đang chờ xử lý cùng một lúc.

IIS 7.0 thực sự có một lỗi khiến chức năng gia hạn tạo CSR với một khóa rất lớn (lớn hơn nhiều so với bạn muốn). Vì điều này, bạn nên tạo một yêu cầu đang chờ xử lý mới thay vì chọn tùy chọn gia hạn. Sau khi cài đặt, bạn chỉ cần chuyển đổi ràng buộc SSL trên trang web và bạn sẽ không có bất kỳ thời gian chết nào. Điều này cũng cho phép bạn tạo khóa mới mỗi lần bạn gia hạn để tăng tính bảo mật.

Nhà cung cấp chứng chỉ (CA) không quan tâm bạn sử dụng tùy chọn mới hay tùy chọn gia hạn và bạn có thể sử dụng tùy chọn này cho dù bạn đang ở cùng một CA hoặc đặt hàng từ một tùy chọn mới.


7

Gia hạn chứng chỉ cho phép bạn giữ cùng khóa chung và khóa riêng trong khi cập nhật ngày hết hạn cho chứng chỉ. Lợi thế cho điều này là nếu bạn phải lưu trữ dấu vân tay trên bộ định tuyến hoặc một cái gì đó. Tôi tin rằng cùng một CA phát hành là bắt buộc để gia hạn một yêu cầu để có thể dễ dàng tạo ra một yêu cầu mới bằng tay.

Để tạo một yêu cầu mới mà không làm nổ tung IIS

Bạn có thể tạo yêu cầu chứng chỉ bằng tay và gửi nó. Khi bạn nhận được chứng chỉ mới, bạn có thể chuyển chứng chỉ mà IIS7 đang tìm kiếm. Cách tạo chứng chỉ SSL máy chủ web theo cách thủ công .

Ý chính đơn giản của quy trình là bạn sẽ tạo một tệp inf với thông tin bắt buộc, chạy certreq -new file.inf file.req. Khi bạn có tệp yêu cầu, bạn có thể gửi nó tới CA mà bạn muốn cấp chứng chỉ của mình, sau đó chấp nhận khóa công khai mà họ gửi cho bạn bằng lệnhcertreq -accept file-from-ca.req

Ví dụ request.inf

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="

Ví dụ trên inf là một cái tôi sử dụng nội bộ cho CA của riêng tôi nhưng có thể được điều chỉnh để hoạt động cho hầu hết các môi trường. Bạn có thể đặt Exportablethành TRUE nếu bạn muốn lưu trữ khóa của mình. Phần FriendlyNamenày là hoàn toàn tùy chọn và Extensionsphần dành cho việc sử dụng tên DNS thay thế (Tên thay thế chủ đề).

Một ví dụ về mục SAN sẽ là:

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"

Điều đó sẽ cho phép bạn sử dụng cùng một chứng chỉ với ba trang web trên mà không phàn nàn rằng có một tên không khớp (trên các trình duyệt hiện đại - tôi không nghĩ IE6 hiểu nó). Điều quan trọng là bạn phải bao gồm tên miền đủ điều kiện (CN của dòng chủ đề) trong SAN nếu bạn thiết lập tên miền đó. Bạn cũng có thể xóa hoàn toàn khu vực tiện ích mở rộng nếu bạn không có nhiều tên miền (đồng thời, một số CA có thể không hỗ trợ nó).

Quá trình

Một khi bạn đã lưu các thông tin trên (tôi biết nó rất nhiều). Thực hiện theo các bước sau:

  1. Mở một dấu nhắc lệnh và cd vào thư mục mà bạn đã lưu inf ở trên.
  2. Chạy certreq -new above.inf request.req
  3. Gửi tệp request.req đến CA. Họ sẽ xử lý nó và phê duyệt / từ chối nó.
  4. Khi họ chấp thuận, họ sẽ gửi lại cho bạn khóa công khai của bạn trong tệp .cer.
  5. Chạy certreq -accept file-from-ca.cerđể hoàn tất việc thiết lập chìa khóa.

Chúc may mắn!

Biên tập

Cú pháp đầy đủ cho certreq và tệp inf có thể được tìm thấy tại Phụ lục 3: Cú pháp của Certreq.exe (Windows Server 2003 SP1) . Chỉ FriendlyNameHashAlgorithmlà Server 2008 (và R2). Bạn có thể xem danh sách các nhà cung cấp mật mã được hỗ trợ bằng cách chạy lệnh certutil -csplistvà xem kết quả đầu ra. Một hộp Windows 2003 SP2 hiện tại có "Nhà cung cấp mật mã Microsoft RSA SChannel" được liệt kê là nhà cung cấp có sẵn, vì vậy hãy đảm bảo rằng tệp của bạn được đặt dấu ngoặc kép đúng cách và mục đó chỉ nằm trên một dòng (không có gói hoặc nhiều dòng).

Bạn cũng có thể thay đổi Tên nhà cung cấp thành Nhà cung cấp dịch vụ và sử dụng số được cung cấp bởi đầu ra của certreq -csplist.

Trong trường hợp này tôi nhận được đầu ra sau:

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12

Vì vậy, tôi có thể sử dụng

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

hoặc là

ProviderType = 12

Cảm ơn. Làm thế nào để tôi chuẩn bị nó bằng tay?
Nắng

Ngoài ra - vẫn là câu hỏi đang chờ xử lý - có vấn đề gì đối với việc "gia hạn" rằng chứng chỉ sẽ được cấp bởi nhà cung cấp mới không?
Nắng

Theo như tôi biết, một gia hạn yêu cầu cùng một CA phát hành gửi cho bạn chứng chỉ được làm mới vì một gia hạn giữ cùng khóa công khai và khóa riêng. Một CA khác sẽ có một khóa khác được đặt để đăng nhập và do đó, cặp khóa chung / riêng của bạn sẽ khác.
Joshua

Joshua, nó báo cáo này: Bộ xử lý yêu cầu chứng chỉ: Dữ liệu không hợp lệ. 0x8007000d (WIN32: 13) mycert.inf (HashAlacticm = "SHA256"). Bạn có chắc chắn điều này sẽ làm việc? Trong nguồn gốc. bài viết bạn liên kết đến, không có một thiết lập như vậy.
Nắng

Tôi đã xóa cài đặt HashAlacticm và FriendlyName (vì nó phàn nàn về chúng) và không tôi nhận được: Bộ xử lý yêu cầu chứng chỉ: Loại nhà cung cấp không khớp với giá trị đã đăng ký. 0x8009001b (-2146893797). Quá tệ.
Nắng

1

OK, để trả lời một phần câu hỏi của riêng tôi - phần tạo / sử dụng chứng chỉ mới mà không xóa chứng chỉ hiện có (nghĩa là không dừng máy chủ), tôi đã tìm thấy một mô tả hay trên trang web Comodo - về cơ bản tôi cần tạo một trang web "tạm thời" trên máy chủ và sử dụng nó để tạo CSR mới, gửi nó để ký, nhận và nhập chứng chỉ.

Sau đó, trên trang web chính (thực) của tôi, tôi cần thay thế chứng chỉ hiện tại và sau đó xóa temp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.