Saya ingin meng-host situs web yang harus mendengarkan subdomain (mis., Subdomain.com) bersama dengan beberapa situs web yang hidup tepat di bawah domain tingkat kedua (mis. Domain2.com, domain3.com) dengan IIS dan dengan SSL.
Untuk situs web dengan subdomain saya memiliki sertifikat wildcard (* .domain.com) dan saya juga memiliki sertifikat khusus untuk situs lain (domain2.com dan domain3.com).
Bisakah pengaturan seperti itu di-host pada IIS yang sama (jika itu penting, dalam peran web Layanan Cloud Azure)?
Masalahnya persis dengan apa yang dijelaskan titobf di sini : secara teoritis untuk ini kita akan memerlukan binding menggunakan SNI, dengan host yang ditentukan untuk domain2 / 3.com dan kemudian situs web untuk semua domain dengan * host untuk * .domain.com. Namun dalam praktiknya, tidak peduli bagaimana ikatannya dipasang jika situs web catch-all ada di dalamnya, juga akan menerima semua permintaan ke domain2 / 3.com (meskipun seharusnya hanya cocok sebagai pilihan terakhir).
Bantuan apa pun akan dihargai.
Masih belum terpecahkan
Sayangnya saya tidak dapat menyelesaikan ini: tampaknya hanya dapat dipecahkan dengan cara yang sangat rumit, seperti membuat perangkat lunak yang terletak antara IIS dan internet (jadi pada dasarnya firewall) dan memodifikasi permintaan yang masuk (sebelum jabat tangan SSL terjadi! ) untuk memungkinkan skenario. Saya cukup yakin ini tidak mungkin dengan IIS, tidak peduli apa, bahkan dari modul asli.
Saya harus mengklarifikasi: kami menggunakan Azure Cloud Services, jadi kami memiliki batasan lebih lanjut bahwa kami tidak dapat menggunakan beberapa alamat IP (lihat: http://feedback.azure.com/forums/169386-cloud-services-web-and -pekerja-peran / saran / 1259311-multi-ssl-dan-domain-ke-satu-aplikasi ). Jika Anda dapat mengarahkan beberapa IP ke server Anda, maka Anda tidak memiliki masalah ini karena Anda juga dapat membuat binding untuk IP, dan itu akan bekerja sama binding wildcard. Lebih khusus lagi, Anda memerlukan IP untuk situs wildcard (tetapi karena Anda memiliki IP terpisah sekarang Anda tidak perlu mengkonfigurasi mengikat nama host wildcard) dan IP lain untuk semua yang non-wildcard.
Sebenarnya solusi kami adalah penggunaan port SSL non-standar, 8443. Jadi mengikat SNI sebenarnya terikat ke port ini, sehingga bekerja bersama dengan binding lainnya. Tidak bagus, tetapi solusi yang dapat diterima bagi kami sampai Anda dapat menggunakan beberapa IP untuk peran web.
Binding tidak bekerja sekarang
Ikatan https pertama adalah SNI dengan sertifikat sederhana, yang kedua bukan SNI, dengan sertifikat wildcard.
Situs http berfungsi, serta situs https SNI, tetapi situs yang mengikat wildcard memberikan "Kesalahan HTTP 503. Layanan tidak tersedia." (tanpa informasi lebih lanjut, tidak ada Pelacakan Permintaan Gagal atau entri Log Kejadian).
Akhirnya membuatnya pada dasarnya bekerja
Mengaktifkan log jejak ETW seperti yang dijelaskan Tobias menunjukkan bahwa kesalahan root adalah sebagai berikut:
Permintaan (ID permintaan 0xF500000080000008) ditolak karena alasan: UrlGroupLookupFailed.
Sejauh yang saya mengerti ini berarti http.sys tidak dapat merutekan permintaan ke titik akhir yang tersedia.
Memeriksa titik akhir yang terdaftar dengan netsh http show urlacl
menunjukkan bahwa memang ada sesuatu yang terdaftar untuk port 443:
Reserved URL : https://IP:443/
User: NT AUTHORITY\NETWORK SERVICE
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;NS)
Menghapus ini dengan netsh http delete urlacl url=https://IP:443/
akhirnya mengaktifkan ikatan SSL saya.
logman start httptrace -p Microsoft-Windows-HttpService 0xFFFF -o httptrace.etl -ets
2) lakukan permintaan 503 3) hentikan jejak log. jalankan: logman stop httptrace -ets
4) tulis log jejak ke file. jalankan: tracerpt.exe httptrace.etl -of XML -o httptrace.xml
5) periksa alasan 503 dalam file xml dan posting di sini.