Bagaimana Anda menggunakan https / SSL di localhost?

88

Saya ingin tahu cara mengatur SSL di aplikasi web saya di localhost.

Saya tidak memiliki latar belakang dalam melakukan ini, akan menghargai bimbingan. Saya sudah selesai mengimplementasikan aplikasi web saya dan saya membutuhkannya untuk menggunakan https di localhost atau saat saya menyimpannya di server.

Ada Ide?

Salam.

HShbib
sumber
Periksa pos serupa: stackoverflow.com/questions/36037510/…
Pusker György

Jawaban:

24

Jika Anda memiliki IIS Express (dengan Visual Studio):

Untuk mengaktifkan SSL dalam IIS Express, Anda hanya perlu menyetel "SSL Enabled = true" di jendela properti proyek.

Lihat langkah-langkah dan gambar di proyek kode ini .

IIS Express akan menghasilkan sertifikat untuk Anda (Anda akan diminta untuk itu, dll.). Perhatikan bahwa bergantung pada konfigurasi, situs mungkin masih secara otomatis dimulai dengan URL daripada URL SSL. Anda dapat melihat URL SSL - catat nomor port dan ganti di bilah alamat browser Anda, Anda harus dapat masuk dan menguji.

Dari sana Anda dapat mengklik kanan pada proyek Anda, klik halaman properti, lalu mulai opsi dan tetapkan URL awal - letakkan https baru dengan port baru (biasanya 44301 - perhatikan kesamaan dengan port 443) dan proyek Anda akan dimulai dengan benar sejak saat itu di.

masukkan deskripsi gambar di sini

JackArbiter
sumber
Bisakah saya memilih port? yaitu menggunakan port https default; port 443?
The Red Pea
1
@TheRedPea Dalam setiap kasus yang saya temui, Anda perlu menggunakan port 44301 untuk menguji secara lokal sebagai pengganti menggunakan port 443. Ini tidak akan memengaruhi port yang Anda gunakan untuk server langsung (yang Anda ikat di IIS), yang hampir selalu 443 dengan asumsi Anda menggunakan https.
JackArbiter
21

Sangat mudah untuk membuat sertifikat yang ditandatangani sendiri, mengimpornya, dan mengikatnya ke situs web Anda.

1.) Buat sertifikat yang ditandatangani sendiri:

Jalankan 4 perintah berikut, satu per satu, dari Command Prompt yang ditinggikan:

cd C:\Program Files (x86)\Windows Kits\8.1\bin\x64

makecert -r -n "CN=localhost" -b 01/01/2000 -e 01/01/2099 -eku 1.3.6.1.5.5.7.3.3 -sv localhost.pvk localhost.cer

cert2spc localhost.cer localhost.spc

pvk2pfx -pvk localhost.pvk -spc localhost.spc -pfx localhost.pfx

2.) Impor sertifikat ke toko Otoritas Sertifikasi Root Terpercaya:

start -> run -> mmc.exe -> Certificates plugin -> "Trusted Root Certification Authorities" -> Certificates

Klik kanan Sertifikat -> Semua Tugas -> Impor Temukan Sertifikat "localhost" Anda di C: \ Program Files (x86) \ Windows Kits \ 8.1 \ bin \ x64 \

3.) Ikat sertifikat ke situs web:

start -> Manajer (IIS) -> Klik Server Anda -> Klik Situs -> Klik situs tingkat atas Anda -> Bindings

Tambahkan atau edit pengikatan untuk https dan pilih sertifikat SSL yang disebut "localhost".

4.) Impor Sertifikat ke Chrome:

Pengaturan Chrome -> Kelola Sertifikat -> Impor sertifikat .pfx dari C: \ certificate \ folder

Uji Sertifikat dengan membuka Chrome dan menavigasi ke https: // localhost /

Jason Williams
sumber
Bagaimana Anda mendapatkan file yang baru saja Anda gunakan dalam perintah makecert? localhost.pvk localhost.cer cert2spc localhost.cer localhost.spc. Bagaimana cara mendapatkan file private.key untuk membuat file allinone.pem untuk digunakan di server web lain selain IIS?
Jika Anda tidak ingin mengimpor sertifikat ke Chrome, Anda dapat memilih untuk menonaktifkan fitur keamanan Chrome yang memblokir akses ke sertifikat yang ditandatangani sendiri di localhost stackoverflow.com/a/31900210/2733283
Jason Williams
9

Pertanyaan ini sangat lama, tetapi saya menemukan halaman ini ketika saya mencari cara termudah dan tercepat untuk melakukan ini. Menggunakan Webpack jauh lebih sederhana:

instal webpack-dev-server

npm i -g webpack-dev-server

mulai webpack-dev-server dengan https

webpack-dev-server --https
brianyang
sumber
2
Ini akan melayani file js yang membentuk aplikasi, tetapi tidak menjalankan aplikasi.
pengguna1944491
Bisakah ini digunakan bersama server dev yang ada seperti XAMPP?
Prometheus