Memperbarui sertifikat memungkinkan Anda menyimpan kunci publik dan pribadi yang sama sambil memperbarui tanggal kedaluwarsa untuk sertifikat tersebut. Keuntungan dari ini adalah jika Anda harus menyimpan cap jempol pada router atau sesuatu. Saya percaya bahwa CA penerbit yang sama diperlukan untuk memperbarui permintaan sehingga mungkin lebih mudah untuk menghasilkan permintaan baru dengan tangan.
Untuk menghasilkan permintaan baru tanpa meledakkan IIS
Anda dapat membuat permintaan sertifikat secara manual dan mengirimkannya. Setelah Anda mendapatkan sertifikat baru, Anda dapat dengan mudah mengganti sertifikat yang IIS7 cari. Cara membuat sertifikat SSL server web secara manual .
Inti sederhana dari proses ini adalah Anda akan membuat file inf dengan informasi yang diperlukan, jalankan certreq -new file.inf file.req
. Setelah Anda memiliki file permintaan, Anda dapat mengirimkannya ke CA yang Anda inginkan untuk mengeluarkan sertifikat Anda, lalu menerima kunci publik yang mereka kirimkan kepada Anda dengan perintahcertreq -accept file-from-ca.req
Contoh 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="
Inf contoh di atas adalah yang saya gunakan secara internal untuk CA saya sendiri tetapi dapat disesuaikan untuk bekerja untuk sebagian besar lingkungan. Anda dapat mengatur Exportable
ke TRUE jika Anda ingin dapat mengarsipkan kunci Anda. Ini FriendlyName
sepenuhnya opsional dan Extensions
bagian ini untuk menggunakan nama DNS alternatif (Nama Alternatif Subjek).
Contoh entri SAN adalah:
[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"
Itu akan memungkinkan Anda untuk menggunakan sertifikat yang sama dengan tiga situs di atas tanpa mengeluh bahwa ada ketidakcocokan nama (di browser modern - saya tidak berpikir IE6 memahaminya). Penting bahwa Anda memasukkan nama domain yang sepenuhnya memenuhi syarat (CN dari baris subjek) di SAN jika Anda mengaturnya. Anda juga dapat menghapus area ekstensi sepenuhnya jika Anda tidak memerlukan beberapa nama domain (juga, beberapa CA mungkin tidak mendukungnya).
Proses
Setelah Anda menyimpan informasi di atas (saya tahu itu banyak). Ikuti langkah ini:
- Buka prompt perintah dan cd ke direktori tempat Anda menyimpan info di atas.
- Lari
certreq -new above.inf request.req
- Kirim file request.req ke CA Anda. Mereka akan memprosesnya dan menyetujui / menolaknya.
- Ketika mereka menyetujuinya, mereka harus mengirim Anda kembali kunci publik Anda dalam file .cer.
- Jalankan
certreq -accept file-from-ca.cer
untuk menyelesaikan pengaturan kunci.
Semoga berhasil!
Edit
Sintaks lengkap untuk certreq dan file inf dapat ditemukan di Lampiran 3: Sintaks Certreq.exe (Windows Server 2003 SP1) . The FriendlyName
dan HashAlgorithm
yang Server 2008 (dan R2) saja. Anda dapat melihat daftar penyedia kriptografi yang didukung dengan menjalankan perintah certutil -csplist
dan melihat hasilnya. Kotak Windows 2003 SP2 saat ini memang memiliki "Penyedia Kriptografi Microsoft RSA SChannel" terdaftar sebagai penyedia yang tersedia jadi pastikan file Anda memiliki tanda kutip yang ditetapkan dengan benar dan entri itu hanya pada satu baris saja (tidak ada pembungkus atau multi-baris).
Anda juga dapat mengubah ProviderName ke ProviderType dan menggunakan nomor yang disediakan oleh output dari certreq -csplist
.
Dalam hal ini saya mendapatkan output berikut:
Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12
Jadi saya bisa menggunakan
ProvderName = "Microsoft RSA SChannel Cryptographic Provider"
atau
ProviderType = 12