IIS 7.0 - sertifikat SSL - perpanjang atau baru?

13

Salah satu sertifikat SSL saya (hanya verifikasi domain sederhana) akan kedaluwarsa pada server Windows 2003 IIS 7.0.

Saya mendapat penawaran yang lebih baik dari vendor lain, dan orang-orang yang awalnya mengeluarkan sertifikat saya tidak ingin menegosiasikan harga yang lebih rendah.

Pokoknya - melalui pemandu sertifikat di IIS, saya memiliki opsi untuk "memperbarui" atau "mencopot" dan kemudian memasang sertifikat baru.

Jadi - dapatkah saya menggunakan opsi "perpanjangan" untuk membuat permintaan sertifikat dan meneruskannya ke vendor baru, atau saya harus mulai dengan permintaan "baru"? Apakah penting bagi vendor baru, bahwa sertifikat sebelumnya dikeluarkan oleh penanda tangan lain?

Masalahnya adalah, saya tidak ingin menghentikan server (setidaknya bagian aman) karena menghapus sertifikat lama dan membuat CSR baru, dan menunggu untuk menginstal sertifikat baru.

Atau, apakah ada opsi untuk menyiapkan CSR baru tanpa menghapus sertifikat lama?

Cerah
sumber

Jawaban:

7

Anda hanya perlu membuat situs web sementara dengan IIS 6.0. IIS 7.0 memungkinkan Anda membuat beberapa permintaan yang tertunda sekaligus.

IIS 7.0 sebenarnya memiliki bug yang menyebabkan fungsi memperbaharui untuk menghasilkan CSR dengan kunci yang sangat besar (jauh lebih besar dari yang Anda inginkan). Karena itu, Anda disarankan untuk membuat permintaan yang tertunda baru daripada memilih opsi perpanjangan. Setelah diinstal, Anda cukup mengganti SSL mengikat di situs web dan Anda tidak akan memiliki downtime. Ini juga memungkinkan Anda untuk menghasilkan kunci baru setiap kali Anda memperbarui yang meningkatkan keamanan.

Penyedia sertifikat (CA) tidak peduli apakah Anda menggunakan opsi baru atau opsi perpanjangan dan Anda bisa menggunakan salah satu opsi apakah Anda tetap menggunakan CA yang sama atau memesan dari yang baru.

Robert
sumber
7

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 Exportableke TRUE jika Anda ingin dapat mengarsipkan kunci Anda. Ini FriendlyNamesepenuhnya opsional dan Extensionsbagian 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:

  1. Buka prompt perintah dan cd ke direktori tempat Anda menyimpan info di atas.
  2. Lari certreq -new above.inf request.req
  3. Kirim file request.req ke CA Anda. Mereka akan memprosesnya dan menyetujui / menolaknya.
  4. Ketika mereka menyetujuinya, mereka harus mengirim Anda kembali kunci publik Anda dalam file .cer.
  5. Jalankan certreq -accept file-from-ca.ceruntuk 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 FriendlyNamedan HashAlgorithmyang Server 2008 (dan R2) saja. Anda dapat melihat daftar penyedia kriptografi yang didukung dengan menjalankan perintah certutil -csplistdan 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
Joshua
sumber
Terima kasih. Bagaimana saya mempersiapkannya secara manual?
Cerah
Juga - masih merupakan pertanyaan yang tertunda - apakah penting untuk "memperbaharui" bahwa sertifikat akan dikeluarkan oleh vendor baru?
Cerah
Sejauh yang saya tahu pembaruan memerlukan CA penerbit yang sama untuk mengirimi Anda sertifikat yang diperbarui karena pembaruan menyimpan kunci publik dan pribadi yang sama. CA yang berbeda akan memiliki set kunci yang berbeda untuk ditandatangani, sehingga pasangan kunci publik / pribadi Anda akan berbeda.
Joshua
Joshua, ini melaporkan ini: Pengolah Permintaan Sertifikat: Data tidak valid. 0x8007000d (WIN32: 13) mycert.inf (HashAlgorithm = "SHA256"). Apakah Anda yakin ini harus berhasil? Di tempat asalnya. artikel yang Anda tautkan, tidak ada pengaturan seperti itu.
Sunny
Saya menghapus pengaturan HashAlgorithm dan FriendlyName (karena mengeluhkannya) dan tidak saya dapatkan: Pengolah Permintaan Sertifikat: Jenis penyedia tidak cocok dengan nilai yang terdaftar. 0x8009001b (-2146893797). Sangat buruk.
Sunny
1

OK, untuk sebagian menjawab pertanyaan saya sendiri - bagian membuat / menggunakan sertifikat baru tanpa menghapus yang ada (yaitu tanpa menghentikan server), saya menemukan deskripsi yang baik di situs web Comodo - pada dasarnya saya perlu membuat situs web "sementara" di server, dan gunakan untuk membuat CSR baru, kirimkan untuk ditandatangani, dan terima serta impor sertifikat.

Kemudian di situs (nyata) utama saya, saya perlu mengganti sertifikat saat ini, dan kemudian menghapus temp.

Cerah
sumber