Apakah mungkin untuk memiliki sertifikat SSL untuk alamat IP, bukan nama domain?

282

Saya ingin situs saya menggunakan URL seperti http://192.0.2.2/...dan https://192.0.2.2/...untuk konten statis untuk menghindari cookie yang tidak perlu dalam permintaan DAN menghindari permintaan DNS tambahan.

Apakah ada cara untuk mendapatkan sertifikat SSL untuk tujuan ini?

Evgenyt
sumber
3
Pertanyaan ini mungkin menarik: Anda bisa tetapi alamat IP harus dalam entri SAN jenis alamat IP, bukan dalam CN dari DN Subjek.
Bruno
14
LetsEncrypt tidak melakukannya. "" "" xxxx adalah alamat IP. Otoritas sertifikat Let's Encrypt tidak akan mengeluarkan sertifikat untuk alamat IP telanjang. "" "
kommradHomer
1
C / A Forum Browser menyediakan satu set kebijakan penerbitan. Jelas, ini diikuti oleh browser. CA / B tidak lagi mengizinkan alamat IP. Serangkaian kebijakan penerbitan lainnya dikelola oleh IETF. PKI IETF disebut PKIX. PKIX memungkinkan alamat IP. PKIX diikuti oleh sebagian besar perangkat lunak [gratis?], Seperti cURL dan Wget. Saya tidak bisa mengetahui sertifikat untuk 1.1.1.1 . Itu harus dilarang sesuai dengan kebijakan CA / B. Mungkin CA / B mengubah kebijakan mereka.
jww

Jawaban:

170

Menurut jawaban ini , itu mungkin, tetapi jarang digunakan.

Adapun cara mendapatkannya: Saya cenderung hanya mencoba dan memesan satu dengan penyedia pilihan Anda, dan masukkan alamat IP alih-alih domain selama proses pemesanan.

Namun, menjalankan situs pada alamat IP untuk menghindari pencarian DNS kedengarannya seperti optimasi mikro yang tidak perlu bagi saya. Anda akan menghemat beberapa milidetik terbaik, dan itu adalah per kunjungan , karena hasil DNS di-cache pada beberapa level.

Saya pikir ide Anda tidak masuk akal dari sudut pandang optimasi.

Pekka
sumber
9
AFAIK, 1 kali per menit (cache DNS Firefox) dan 1 kali per 30 menit untuk IE. Ini berbeda dari TTL catatan DNS. Juga dibutuhkan sekitar 20 ms untuk saya, tergantung pada domain dan seberapa cepat server NS (yang juga harus diselesaikan terlebih dahulu :)) Saya juga ingin menghindari cookie yang panjang (cookie auth + Google Analytics saya) untuk setiap permintaan statis. Jadi menggunakan IP alih-alih membeli domain terpisah itu bagus. BTW, stackoverflow, basecamphq menggunakan domain terpisah untuk konten statis. Menggunakan IP sebagai gantinya akan menghapus permintaan DNS yang tidak perlu juga.
Evgenyt
12
Saya benar-benar mengerti maksud Anda dengan cookie, Anda sepenuhnya benar. Tetapi untuk beralih ke IP SSL untuk menyimpan beberapa ms dari pencarian DNS terdengar lebih merepotkan daripada nilainya. Plus, Anda mungkin memiliki masalah membawa IP Anda jika Anda harus mengubah penyedia Anda - itu mungkin tidak mungkin. Memindahkan domain jauh lebih mudah, dan harus memungkinkan untuk memindahkan sertifikat dengan setengah jalan.
Pekka
2
Alat Kecepatan Halaman Google selalu menyarankan untuk "Melayani sumber daya JavaScript berikut dari host yang sama dengan dokumen utama (xxxx.com), atau menunda pemuatan sumber daya ini jika memungkinkan". Saya tidak memberi peringkat alat Kecepatan Laman sebagai Alkitab, tetapi bagaimanapun itu berarti pengoptimalan DNS tidak ditemukan oleh saya. Saya hanya mencoba membuat checklist Kecepatan Halaman saya menjadi hijau jika memungkinkan.
Evgenyt
11
@ Evgenyt: Saya tidak berpikir itu karena pencarian DNS, yang sebagaimana dinyatakan di-cache pada banyak tingkatan sehingga tidak bisa menjadi masalah kinerja. Lebih memungkinkan untuk mengaktifkan browser untuk menyalurkan permintaan mereka. Menjaga koneksi ke host tetap terbuka, sehingga menghindari pengaturan koneksi tambahan.
vdstw
5
Saya setuju dengan jawabannya. Kami juga menemukan masalah dengan konfigurasi tersebut. Ternyata, browser Chrome (39.0.2171.93) pada Android OS (4.4.5.0; berfungsi pada 4.0.4) tidak dapat memutar file audio melalui HTTPS jika alamat IP digunakan sebagai target sertifikat. Kami dulu menggunakan konfigurasi seperti itu untuk lingkungan pengujian kami, tetapi akan mulai menggunakan nama domain.
ENargit
58

Jawaban singkatnya adalah ya, asalkan itu adalah alamat IP publik.

Penerbitan sertifikat ke alamat IP yang dicadangkan tidak diizinkan, dan semua sertifikat yang sebelumnya dikeluarkan untuk alamat IP yang dicadangkan telah dicabut pada 1 Oktober 2016.

Menurut forum CA Browser, mungkin ada masalah kompatibilitas dengan sertifikat untuk alamat IP kecuali alamat IP ada di bidang commonNamedan subjectAltName. Ini karena implementasi SSL lama yang tidak selaras dengan RFC 5280, terutama, OS Windows sebelum Windows 10.


Sumber:

  1. Panduan Alamat IP Dalam Sertifikat CA Browser Forum
  2. Persyaratan Dasar 1.4.1 CA Browser Forum
  3. The (segera menjadi) Nama Biasa unmitigatedrisk.com
  4. RFC 5280 IETF

Catatan: versi sebelumnya dari jawaban ini menyatakan bahwa semua sertifikat alamat IP akan dicabut pada 1 Oktober 2016. Terima kasih kepada Navin karena menunjukkan kesalahannya.

Regdoug
sumber
5
Tidak benar, globalsign masih mengeluarkan sertifikat untuk IP. Otoritas Sertifikat / Forum Peramban tidak suka melihat IP pribadi dalam sertifikat tetapi tidak menentang IP publik.
Navin
1
Sepertinya info saya mungkin kedaluwarsa. Saya akan memeriksanya lebih lanjut dan kemudian mengeditnya jika Anda benar.
regdoug
Tidak benar, lihat 1.1.1.1. Mereka mendapatkan sertifikat SSL untuk ip pada 2019 dan berlaku untuk 2021 dari DigiCert
pria perunggu
@bronzeman itu adalah alamat IP publik jadi, ya Anda bisa mendapatkan sertifikat untuk itu. Satu-satunya alamat yang tidak dapat dikeluarkan sertifikat adalah en.wikipedia.org/wiki/Reserved_IP_addresses
regdoug
@DustWolf, per RFC 5280, "Ketika ekstensi subjectAltName berisi iPAddress, alamat HARUS disimpan dalam string oktet dalam" urutan jaringan byte ", sebagaimana ditentukan dalam [RFC791]. ... Untuk IP versi 4 ..., string oktet HARUS berisi tepat empat oktet. " Singkatnya, Anda tidak dapat menggunakan subnet di bidang
subjectAltName
31

Jawabannya saya kira, adalah ya. Lihat tautan ini misalnya.

Menerbitkan Sertifikat SSL ke Alamat IP Publik

Sertifikat SSL biasanya dikeluarkan untuk Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) seperti " https://www.domain.com ". Namun, beberapa organisasi memerlukan sertifikat SSL yang dikeluarkan untuk alamat IP publik. Opsi ini memungkinkan Anda untuk menentukan alamat IP publik sebagai Nama Umum dalam Permintaan Penandatanganan Sertifikat (CSR) Anda. Sertifikat yang dikeluarkan kemudian dapat digunakan untuk mengamankan koneksi secara langsung dengan alamat IP publik (misalnya, https://123.456.78.99 .).

Klaus Byskov Pedersen
sumber
5
Apakah ini berfungsi juga dengan IP privat statis? Suka untuk LAN?
Tuan Bonjour
@ Klaus Byskov Pedersen Bisakah Anda memberi saya sumber daya tentang cara melakukan ini?
reyhane
2
@ ShivSingh Ada sumber? Saya tidak berpikir CA terkenal akan mengeluarkan sertifikat ke alamat IP pribadi.
Franklin Yu
22

Ya. Cloudflare menggunakannya untuk beranda instruksi DNS-nya: https://1.1.1.1

mehulmpt
sumber
8
Sepertinya tidak seperti ini. Jika Anda memeriksa sertifikat, Common Namebidang ini cloudflare-dns.comdan 1.1.1.1hanya terdaftar di bawah Certificate Subject Alt Name.
bitinerant
3
@bitinerant, Nama Umum akan diabaikan jika Nama Alternatif Subjek ada . Faktanya, Nama Umum sudah ditinggalkan dan hanya SAN yang benar-benar relevan.
Yogu
3

Forum C / A Browser menetapkan apa yang valid dan tidak dalam sertifikat, dan apa yang harus ditolak CA.

Menurut Persyaratan Dasar untuk Penerbitan dan Pengelolaan dokumen Sertifikat Tepercaya Publik , CA harus, sejak 2015, tidak menerbitkan sertifikat di mana nama umum, atau bidang nama alternatif umum berisi IP yang dicadangkan atau nama internal, di mana alamat IP yang dipesan adalah IP. bahwa IANA telah terdaftar sebagai cadangan - yang mencakup semua IP NAT - dan nama internal adalah nama apa pun yang tidak diselesaikan pada DNS publik.

Alamat IP publik BISA digunakan (dan dokumen persyaratan dasar menetapkan jenis pemeriksaan yang harus dilakukan CA untuk memastikan pemohon memiliki IP).

Chris Becke
sumber
0

Ini sepenuhnya tergantung pada Otoritas Sertifikat yang mengeluarkan sertifikat.

Sejauh Let's Encrypt CA, mereka tidak akan mengeluarkan sertifikat TLS pada alamat IP publik. https://community.letsencrypt.org/t/certificate-for-public-ip-without-domain-name/6082

Untuk mengetahui otoritas Sertifikat Anda, Anda dapat menjalankan perintah berikut dan mencari entri yang ditandai di bawah ini.

curl -v -u <username>:<password> "https://IPaddress/.."

masukkan deskripsi gambar di sini

Shahid Hussain
sumber