IIS 7 Masih Melayani Sertifikat SSL lama

27

Saya memasang sertifikat SSL baru ke IIS7, menghapus sertifikat lama dan mengatur binding untuk sertifikat baru - jadi https sekarang terikat ke sertifikat baru saja.

Saya me-restart IIS7 (dan Windows 2008 Server itu sendiri) dan memeriksa sertifikat menggunakan perintah:

netsh http show sslcert

Ini menunjukkan sertifikat baru saja, seperti yang saya harapkan

certutil -store MY

Ini juga hanya menunjukkan sertifikat baru dan bukan yang lama, seperti yang saya harapkan

Saya juga membuka mmc dan memeriksa sertifikat di sana dan saya hanya melihat yang baru dan bukan yang lama.

Saya juga menggunakan akun dengan hak istimewa Administrator.

Namun - ketika saya membuka browser (dari komputer mana saja) dan pergi ke situs https masih menggunakan sertifikat lama. Bahkan ketika saya menghapus sertifikat lama dari browser itu masih akan mengirim yang lama dan bukan yang baru.

Adakah yang bisa membantu saya mencari tahu di mana saya salah? Bagaimana saya bisa mengusir sertifikat hantu lama?

joechip
sumber

Jawaban:

28

Pertama, beberapa poin yang mungkin sama untuk Anda

  • Saya mencoba memperbarui sertifikat karena sudah kedaluwarsa.
  • Saya memiliki beberapa domain yang terikat dengan IP yang sama. Mereka kebetulan merupakan sertifikat SAN tapi itu mungkin tidak relevan.
  • Saya mencoba menggunakan toko sertifikat terpusat. Sekali lagi saya pikir ini tidak relevan dengan sebagian besar jawaban saya.
  • Saya sudah berusaha memperbarui sertifikat tetapi tidak menunjukkan tanggal yang baru.
  • Anda mungkin panik sekarang jika sertifikat lama Anda sudah kadaluwarsa. Ambil napas dalam-dalam ...

Pertama saya akan sangat merekomendasikan https://www.digicert.com/help/dan mengunduh alat DigiCert mereka. Anda juga dapat menggunakannya online.

Masukkan di situs web Anda https://example.comdan itu akan menunjukkan tanggal kedaluwarsa dan cap jempol (apa yang disebut MS hash sertifikat). Itu melakukan pencarian realtime sehingga Anda tidak perlu khawatir apakah browser Anda (atau server perantara) sedang melakukan cache sesuatu.

Jika Anda menggunakan toko sertifikat terpusat, Anda ingin 100% yakin file .pfx adalah versi terbaru, jadi buka direktori toko Anda dan jalankan perintah ini:

C:\WEBSITES\SSL> certutil -dump www.example.com.pfx

Ini akan menunjukkan tanggal kedaluwarsa dan sidik jari / jempol. Tentunya jika tanggal kedaluwarsa ini salah, Anda mungkin baru saja mengekspor sertifikat yang salah ke sistem file, jadi pergi dan perbaiki dulu.

Jika Anda menggunakan CCS maka dengan asumsi perintah certutil ini memberi Anda tanggal kedaluwarsa yang diharapkan (dari sertifikat yang diperbarui), Anda dapat melanjutkan.

Jalankan perintah:

netsh http show sslcert > c:\temp\certlog.txt
notepad c:\temp\certlog.txt

Anda mungkin memiliki banyak hal di sini sehingga lebih mudah untuk membukanya di editor teks.

Anda ingin mencari file ini untuk hash SALAH yang Anda dapatkan digicert.com(atau cap jempol yang Anda dapatkan dari Chrome).

Bagi saya ini menghasilkan yang berikut. Anda akan melihatnya terikat ke IP dan bukan nama domain yang saya harapkan. Ini masalahnya. Tampaknya ini (untuk alasan apa pun saya tidak yakin) lebih diutamakan daripada set mengikat di IIS yang baru saja saya perbarui example.com.

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

Saya bahkan tidak tahu dari mana pengikatan ini berasal - Saya bahkan tidak memiliki ikatan SSL di situs default saya tetapi server ini sudah berumur beberapa tahun dan saya pikir ada sesuatu yang rusak dan macet.

Jadi, Anda ingin menghapusnya.

Agar aman, Anda harus menjalankan perintah berikut terlebih dahulu untuk memastikan Anda hanya menghapus item ini:

C:\Windows\system32>netsh http show sslcert ipport=10.0.0.1:443

SSL Certificate bindings:
-------------------------

IP:port                      : 10.0.0.1:443
Certificate Hash             : d4a17e3b57e48c1166f18394a819edf770459ac8
Application ID               : {4dc3e181-e14b-4a21-b022-59fc669b0914}
Certificate Store Name       : My
Verify Client Certificate Revocation : Enabled
Verify Revocation Using Cached Client Certificate Only : Disabled
Usage Check                  : Enabled
Revocation Freshness Time    : 0
URL Retrieval Timeout        : 0
Ctl Identifier               : (null)
Ctl Store Name               : (null)
DS Mapper Usage              : Disabled
Negotiate Client Certificate : Disabled

Sekarang kami telah memverifikasi ini adalah cap jempol 'buruk', dan satu catatan yang diharapkan dapat kami hapus dengan perintah ini:

C:\Windows\system32>netsh http delete sslcert ipport=10.0.0.1:443

SSL Certificate successfully deleted

Semoga jika Anda sekarang kembali ke Digicert dan menjalankan kembali perintah itu akan memberi Anda cap jempol sertifikat yang diharapkan. Anda harus memeriksa semua nama SAN jika Anda ingin memastikannya.

Mungkin ingin IISRESET di sini untuk memastikan tidak ada kejutan nanti.

Catatan akhir: Jika Anda menggunakan toko sertifikat terpusat dan Anda melihat perilaku tidak menentu mencoba untuk menentukan apakah itu mengambil sertifikat Anda dari sana atau tidak jangan khawatir - itu bukan salah Anda. Kadang-kadang tampaknya mengambil file baru segera, tetapi cache yang lama. Membuka dan menyimpan kembali pengikatan SSL setelah melakukan perubahan apa pun tampaknya menyetel ulang tetapi tidak 100% dari waktu.

Semoga berhasil :-)

Simon
sumber
3
Anda adalah Simon di antara Simons. Dalam kasus kami, ternyata server kami telah 'menembolok' sertifikat yang kadaluwarsa ketika [::1]:443memperbarui sertifikat di IIS hanya memperbarui catatan untuk 0.0.0.0:443. Terima kasih!
tuespetre
1
Ini menyelesaikan masalah saya dengan beberapa domain pada IP yang sama; tidak menggunakan toko cert terpusat.
Chris F Carroll
1
Saya harus menggunakan ini beberapa kali. Perangkat lunak manajemen hosting web PLESK terkadang mengacaukan ikatan sertifikat dan saya akhirnya membutuhkan perintah netsh di atas untuk menghapus ikatan yang menyinggung. Tidak yakin versi mana yang terpengaruh, tetapi saya menggunakan versi PLESK Onyx saat ini di Windows Server 2016.
BenSwayne
Dalam kasus saya itu dengan nama host dan port. Jadi, untuk memfilter dan menghapus berdasarkan nama host, perintahnya adalah: "netsh http show sslcert hostnameport = www.example.com: 443" dan "netsh http delete sslcert hostnameport = www.example.com: 443"
Karthik Jayapal
14

Periksa sertifikat yang terikat ke situs di IIS. Anda dapat mengklik kanan pada situs dan memilih edit bindings. Di sana, Anda akan melihat pengikatan untuk port 443 yang dikaitkan dengan sertifikat SSL. Itu mungkin masih menunjuk yang lama.

Tatas
sumber
Saya memeriksa dan sertifikat di binding untuk port 443 adalah sertifikat baru, bukan yang lama. Terima kasih atas saran Anda.
joechip
1
Aneh, saya tidak pernah mengalami hal ini. Meskipun saya tidak pernah menghapus sertifikat lama. Bagaimana Anda yakin Anda masih mendapatkan sertifikat lama? Apakah ini menunjukkan bahwa sudah kedaluwarsa?
Tatas
Ya, di browser Anda dapat memeriksa rincian sertifikat (tanggal kedaluwarsa, dll) dan yang lama yang dilayani IIS7.
joechip
1
Saya telah melihat ini dengan - Chrome. Chrome menyimpan sertifikat lama dan menunjukkannya kepada pengguna.
TomTom
3

Saya baru saja menyelesaikannya. Server sebenarnya duduk di belakang server ISA sehingga kami juga harus menginstal sertifikat SSL baru ke server ISA.

joechip
sumber
3

Saya memiliki masalah yang sama dan memeriksa bindings juga. Saya memiliki 2 aplikasi yang diinstal di IIS, satu menggunakan sertifikat baru, satu menggunakan yang lama.

Untuk memperbaikinya, saya harus menghapus sertifikat dari server sepenuhnya (kemudian mungkin reboot).

Dari IIS Manager -> (root pohon IIS) -> ikon Sertifikat Server, pilih sertifikat lama dan klik Hapus di panel Tindakan.

Andy Joiner
sumber
1
Kami juga sebenarnya memiliki situs STOPPED tambahan yang mereferensikan sertifikat lama, dan begitu kami memperbarui situs itu untuk menggunakan yang baru, situs langsung yang sebenarnya mulai memperlihatkan sertifikat baru!
Aksi Dan
1

Saya mengalami ini selama peningkatan IPv6. Saya telah IIS memberikan redirect jika seseorang mencoba mengakses layanan melalui HTTP yang sebenarnya bukan layanan berbasis server web. Saya memperbarui layanan aktual (server suara) menjadi IPv6, namun saya gagal memperbarui binding untuk pengalihan untuk memasukkan alamat IPv6.

Hal ini menghasilkan resolusi gagal untuk menangkap semua situs terikat secara global yang memiliki sertifikat usang di atasnya. Karena hasil tangkapannya hanya 404-an, tampaknya situs itu tidak berfungsi, padahal kenyataannya itu mengenai situs yang salah.

AJ Henderson
sumber
0

Jika seseorang masih menemukan masalah ini. Milik saya diselesaikan dengan pergi ke

C:\inetpub\wwwroot

Kemudian Anda akan menemukan file web.config, buka dengan notepad dan hapus baris

<httpRedirect enabled="true" destination="http://foo.company.org" />

Simpan dan coba lagi untuk mengakses localhost atau root situs server IIS Anda.

Joe Marie Escuadra
sumber