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 Exportable
thành TRUE nếu bạn muốn lưu trữ khóa của mình. Phần FriendlyName
này là hoàn toàn tùy chọn và Extensions
phầ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:
- Mở một dấu nhắc lệnh và cd vào thư mục mà bạn đã lưu inf ở trên.
- Chạy
certreq -new above.inf request.req
- Gửi tệp request.req đến CA. Họ sẽ xử lý nó và phê duyệt / từ chối nó.
- 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.
- 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ỉ FriendlyName
và HashAlgorithm
là 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 -csplist
và 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