Bagaimana cara saya mengizinkan HTTPS untuk Apache di localhost?
193
Saya diminta untuk mengatur HTTPS dengan sertifikat yang ditandatangani sendiri pada Apache di localhost, tetapi bagaimana saya benar-benar melakukannya? Saya tidak tahu sama sekali.
Gunakan Serveo ! ssh -R youruniquesubdomain:80:localhost:3000 serveo.netTampar di subdomain dan nomor port Anda dan Anda siap untuk melanjutkanhttps://youruniquesubdomain.serveo.net
totymedli
Jawaban:
135
Saya baru saja mencoba ini - saya perlu menguji beberapa kode pengembangan pada localhost Apache saya di Windows . Ini WAAAY lebih sulit dari yang seharusnya. Tapi di sini adalah langkah-langkah yang berhasil setelah banyak tusuk rambut ...
Saya menemukan bahwa instalasi Apache saya disertai dengan openssl.exeyang sangat membantu. Jika Anda tidak memiliki salinannya, Anda harus mengunduhnya. Salinan saya ada di Apache2\binfolder yang saya rujuk di bawah ini.
Langkah:
Pastikan Anda memiliki izin menulis ke folder conf Apache Anda
Buka prompt perintah di Apache2\conffolder
Tipe ..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Anda dapat mengosongkan semua pertanyaan kecuali:
Frasa PEM: kata sandi sementara seperti "kata sandi"
Nama Umum: nama host server Anda
Saat itu selesai, ketik ..\bin\openssl rsa -in blarg.pem -out blarg.key
Hasilkan sertifikat yang Anda tandatangani sendiri dengan mengetik: ..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Buka conf\httpd.conffile Apache dan pastikan modul SSL diaktifkan - seharusnya tidak ada hash di awal baris ini: LoadModule ssl_module modules/mod_ssl.so
Beberapa instalasi Apache menempatkan konfigurasi SSL dalam file terpisah. Jika demikian, pastikan bahwa file conf SSL dimasukkan. Dalam kasus saya, saya harus batalkan komentar pada baris ini: Include conf/extra/httpd-ssl.conf
Dalam konfigurasi SSL httpd-ssl.confsaya harus memperbarui baris berikut:
Perbarui SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)" ke SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)" (Tanda kurung di jalur membingungkan modul, jadi kita perlu menghindarinya)
DocumentRoot - atur ini ke folder untuk file web Anda
ServerName - nama host server
SSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Mulai ulang Apache.
Coba muat https://localhost/di browser Anda.
Semoga Anda berhasil sejauh ini. Jangan ragu untuk memperbarui posting ini dengan informasi bermanfaat lainnya.
(Tangkapan layar milik Neil Obremski dan artikelnya yang membantu - walaupun sekarang sudah ketinggalan zaman.)
Terima kasih. Saya juga harus mengedit arahan ErrorLog, TransferLog dan CustomLog ke jalur yang valid jika tidak, Apache tidak akan memulai.
Tamlyn
1
Untuk beberapa alasan, instruksi tidak berfungsi lagi atau tidak lengkap
Jacobian
6
Saya harus batalkan komentar berikut ini juga di httpd.conf saya agar bisa berfungsi: LoadModule socache_shmcb_module modules / mod_socache_shmcb.so
erik
1
Saya melakukan dua langkah lagi untuk membuatnya berfungsi, tambahkan modul LoadModule socache_shmcb_module modules / mod_socache_shmcb.so dan di httpd-ssl.conf saya memperbaiki jalur log ssl di baris 250, CustomLog ".apache24 / logs / ssl_request.log" \
Wasim A .
5
Untuk menghasilkan file .pem dan .key, saya harus menetapkan 2 variabel lingkungan pada langkah 2: mengatur OPENSSL_CONF = C: \ path \ to \ apache \ Apache2.4.4 \ conf \ openssl.cnf set RANDFILE = C: \ path \ to \ apache \ Apache2.4.4 \ conf \ .rnd
eosphere
57
Saya menggunakan ngrok ( https://ngrok.com/ ) untuk ini. ngrok adalah alat baris perintah dan membuat terowongan untuk localhost. Ini menciptakan koneksi http dan https. Setelah mengunduhnya, perintah berikut harus dijalankan:
ngrok http 80
(Dalam versi 2, sintaksnya adalah: ngrok http 80. Di versi 2, port apa pun bisa ditembus.)
Setelah beberapa detik, itu akan memberikan dua url:
@sudip, Apakah kode opensource dari ngrok berfungsi sedemikian rupa sehingga kami dapat meng-host ini di server kami sendiri tanpa modifikasi? Jika tidak, itu cukup banyak showstopper karena tidak ok untuk mengarahkan permintaan pengguna ke host eksternal seperti ngrok.
Pacerier
2
@Pacerier Saya tidak bermaksud menggunakannya di server. Saya menggunakannya di localhost (Bcz penyedia jaringan saya memberi saya IP dinamis). Saya menggunakannya pertama kali untuk pengujian IPN paypal dan itu bekerja dengan sempurna. Saya bertanya-tanya mengapa seseorang akan menggunakannya di server dan untuk tujuan apa.
sudip
@sudip, Tujuannya jelas, Untuk memungkinkan kode yang berfungsi pada HTTP juga berfungsi dengan HTTPS tanpa perlu pengkodean tambahan.
Pacerier
1
Meskipun ini berguna, tampaknya sangat tidak aman untuk memungkinkan akses ke mesin dev Anda ke internet terbuka. Menggunakan sesuatu seperti ini akan membuat Anda dipecat di perusahaan yang sadar akan keamanan.
Andy M
@YumYumYum. Itu benar-benar gratis sebelumnya di V 1. Tapi, port http dan https masih gratis di v 2 (tidak tahu apakah ada pembatasan port apakah ada paket gratis). Periksa paket gratis di sini: ngrok.com/product#pricing
sudip
24
di sini adalah cara paling sederhana untuk melakukan ini
pertama-tama salin file server.crt & server.key ini (temukan dalam lampiran) ke direktori apache / conf / ssl Anda
kemudian buka file httpd.conf & tambahkan baris berikut
Saya harus mengaktifkan juga modul LoadModule ssl_module libexec / apache2 / mod_ssl.so di (/etc/apache2/httpd.conf)
Alexey
17
Saya bertanya-tanya seberapa aman / berbahaya mengunduh file * .crt * .key dari sumber yang tidak dipercaya alih-alih menghasilkan file Anda sendiri.
Petr Peller
4
@PetrPeller kami menyiapkan https untuk pengembangan lokal, jadi mengapa bertanya-tanya aman / berbahaya
Anil Gupta
7
Penjelasan cara membuat file-file itu akan bagus. Karena mengunduh file dari sumber yang tidak dikenal adalah praktik yang buruk, tetapi juga karena tautan semacam itu akan rusak pada titik tertentu.
Untuk melindungi keamanan informasi yang dikirim ke dan dari server web Anda, adalah ide yang baik untuk mengaktifkan enkripsi komunikasi antara klien dan server. Ini sering disebut SSL .
Jadi mari kita atur HTTPS dengan sertifikat yang ditandatangani sendiri di Apache2. Saya akan mendaftar langkah-langkah yang harus Anda ikuti:
Instal apache2 web-server pada mesin Anda. Untuk mesin linux buka terminal dan ketik
sudo apt-get install apache2
Setelah instalasi berhasil periksa status layanan apache2 dengan menjalankan perintah
Pastikan Anda mendapatkan halaman default untuk apache2 seperti ini.
Untuk mengenkripsi koneksi web kita memerlukan sertifikat dari CA (otoritas sertifikat) atau kita dapat menggunakan sertifikat yang ditandatangani sendiri. Mari kita buat sertifikat yang ditandatangani sendiri menggunakan perintah berikut.
Silakan isi informasi sebagaimana ditunjukkan di bawah ini.
mykey.key dan mycert.pem harus dibuat di direktori kerja Anda saat ini.
Alangkah baiknya kita jika memindahkan sertifikat dan kunci di tempat yang umum dan akan mudah bagi web server apache2 untuk menemukannya. Jadi mari kita jalankan perintah berikut
sudo cp mycert.pem / etc / ssl / certs
sudo cp mykey.key / etc / ssl / private
Mari aktifkan mode SSL di server Anda
sudo a2enmod ssl
Seharusnya output seperti ini
Mari kita mengkonfigurasi apache2 untuk menggunakan sertifikat dan kunci yang ditandatangani sendiri yang telah kita buat di atas.
sudo vi /etc/apache2/sites-available/default-ssl.conf
Silakan temukan dua baris ini dan ganti dengan jalur sertifikat dan kunci Anda.
Awal
Terakhir
Aktifkan situs
cd / etc / apache2 / sites-available /
sudo a2ensite default-ssl.conf
Mulai ulang layanan apache2
sudo service apache2 restart
Verifikasi apache2 web-server di HTTPS. Buka browser Anda lagi dan ketik
Seharusnya menampilkan sesuatu seperti ini dengan peringatan bahwa halaman yang akan Anda lihat tidak aman karena kami telah mengkonfigurasi server dengan sertifikat yang ditandatangani sendiri.
Selamat Anda telah mengkonfigurasi apache2 Anda dengan titik akhir HTTPS, sekarang klik lanjutan -> tambahkan pengecualian -> konfirmasi pengecualian keamanan , Anda akan melihat halaman default lagi.
Saya lebih suka untuk tidak mengedit file konfigurasi jika saya bisa, jadi saya membiarkannya default-ssl.conf. Aku hendak mengubah nama mycertuntuk ssl-cert-snakeoiltetapi file ini sudah ada jadi saya hanya menggunakan itu! Jadi saya bisa melewati dua langkah dengan aman di Debian.
Rolf
@Rolf Saya setuju dengan Anda tetapi dalam produksi, selalu menggunakan sertifikat dan kunci baru. Jadi hanya untuk menunjukkan bagaimana mereka dapat dibuat, saya telah menambahkan 2 langkah tambahan untuk Debian. Terima kasih :)
Dinesh Kumar
9
Windows + Apache 2.4, misalnya:
batalkan komentar ssl_module di httpd.conffile Anda .
LoadModule ssl_module modules/mod_ssl.so
dengarkan 443 port seperti 80 port di httpd.conffile Anda .
Listen 80
Listen 443
batalkan komentar Termasuk host Virtual di httpd.conffile Anda .
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
tambahkan VirtualHost di blog Anda conf/extra/httpd-vhosts.conf
<VirtualHost _default_:443>
DocumentRoot "D:/www" #your site directory path
ServerName localhost
#ServerAlias localhost.com localhost2.com
SSLEngine on
SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
<Directory "D:/www">
Options -Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
hanya nomor port 443dan SSL......garis yang berbeda dari konfigurasi http normal.
menghemat file konfigurasi Anda dan memulai kembali layanan apache. maka Anda dapat mengunjungi https: // localhost /
Peramban web akan memperingatkan Anda bahwa itu tidak aman pada saat pertama, tinggal pilih.
Ini berhasil bagi saya di XP Home, Apache 2.4. Menyalin 2 file sertifikat dari pos sebelumnya (oleh Anil Gupta). Mod_ssl uncommented dan termasuk httpd-vhosts.conf di httpd.conf, menambahkan arahan VirtualHost Anil Gupta (dengan beberapa jalur disesuaikan) di httpd-vhosts.conf.
jogi99
7
Ini sebenarnya cukup mudah, dengan asumsi Anda memiliki instalasi installsl berguna. (Di platform apa Anda?)
Dengan asumsi Anda menggunakan linux / solaris / mac os / x, Apache Apache SSL / TLS mini-HOWTO memiliki panduan yang sangat baik yang tidak akan saya buat di sini.
Namun, ringkasan eksekutif adalah bahwa Anda harus membuat sertifikat yang ditandatangani sendiri. Karena Anda menjalankan apache untuk localhost mungkin untuk pengembangan (yaitu bukan server web publik), Anda akan tahu bahwa Anda dapat mempercayai sertifikat yang ditandatangani sendiri dan dapat mengabaikan peringatan yang akan dilemparkan oleh browser Anda kepada Anda.
Hai, saya sedang mengerjakan OS Windows. Dan untuk sertifikat yang ditandatangani sendiri, apakah saya harus mengunduhnya atau dengan cara lain?
KennC.
3
Nggak. Anda akan membuat sertifikat yang ditandatangani sendiri sendiri. Apakah Anda memiliki apache httpd + ssl setup? Anda memerlukan ssl untuk melakukan ini. Situs ini: rubayathasan.com/tutorial/apache-ssl-on-windows memiliki info bagus tentang cara menjalankan ssl di windows. Anda akan melakukan beberapa pekerjaan baris perintah, tetapi itu tetap baik untuk Anda. :-)
Dan Anda harus systemctl reload apache2mengejar sudo a2ensite default-ssl.conf.
hingga
2
Pembaruan 2019
Saya memposting jawaban ini karena saya sendiri berjuang dengan ini dan Chrome memperbarui keamanan mereka dengan memerlukan Nama Alternatif Subjek yang banyak posting tidak miliki karena tidak diperlukan ketika mereka diposting sebagai jawaban. Saya berasumsi bahwa WAMP sudah diinstal.
Meskipun bagian ini bersifat opsional, tetapi nantinya lebih mudah untuk mengeksekusi perintah. Jika Anda melewati langkah ini, Anda harus memberikan path lengkap ke openssl.exe tempat Anda akan menjalankan perintah. Jika Anda lebih suka mengaturnya, perbarui jalur openssl.exe di Variabel Lingkungan.
Variabel Lingkungan -> Variabel Sistem -> Jalur -> Edit -> Baru -> c: \ Program Files \ OpenSSL-Win64 \ bin
LANGKAH 3
Buat folder bernama "kunci" dic:/wamp64/bin/apache/apache2.4.27(your version number)/conf/ direktori.
Buat file konfigurasi untuk CA MyCompanyCA.cnf Anda dengan konten (Anda dapat mengubahnya sesuai kebutuhan Anda):
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = root_ca
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
localityName = Locality Name (eg, city)
0.organizationName = Organization Name (eg, company)
organizationalUnitName = Organizational Unit Name (eg, section)
commonName = Common Name (eg, fully qualified host name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 64
[ root_ca ]
basicConstraints = critical, CA:true
Buat file konfigurasi ekstensi MyCompanyLocalhost.ext untuk sertifikat server web Anda:
Catatan: Ini bagian yang sulit. Jika Anda membuat kesalahan kecil saat mengedit file ini, SSL tidak akan berfungsi. Buat salinannya sebelum Anda mengeditnya.
Ya ini bekerja. Saya menggunakan langkah 1 - 3 dari StephanieQ untuk menghasilkan sertifikat dan daripada "openssl x509 -req -in server.csr -signkey server.key -out server.crt" untuk menghasilkan file * .crt dengan cygwin.
Anda dapat menentukan perbaikan kustom, subdomain.
Anda dapat meng-host-nya sendiri, sehingga Anda dapat menggunakan domain Anda sendiri, dan menjadi bukti di masa depan, bahkan jika layanannya turun.
Saya tidak percaya ketika saya menemukan layanan ini. Ini menawarkan segalanya dan ini adalah yang termudah untuk digunakan. Jika ada alat yang mudah dan tidak menyakitkan untuk setiap masalah ...
Menjalankan Apache pada Windows 10 di sini. Saya tidak bisa membuat Chrome mempercayai sertifikat yang dibuat di atas oleh Simon. Apa yang akhirnya saya lakukan adalah menggunakan PowerShell untuk menghasilkan sertifikat yang ditandatangani sendiri.
Langkah 1 - Hasilkan sertifikat yang ditandatangani sendiri
Di PowerShell New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"1
Langkah 2 - Konfigurasikan dan Ekspor Sertifikat
Ketik Certificateke dalam bilah pencarian Windows, klikManage Computer Certificates item panel kontrol yang disarankan.
Dari program Manajemen Sertifikat yang muncul (certlm), Anda seharusnya sekarang melihat localhostkunci di bawah Personal >> Certificates.
Saya menyalin sertifikat ini ke Trusted Root Certification Authorities. Saya akan jujur karena saya tidak yakin apakah itu perlu.
Memilih sertifikat yang baru disalin, klik dua kali (sertifikat localhost). Dari modal Sertifikat, klik Detailstab, lalu tombolCopy to File... tombol.
Ini akan memunculkan dan Ekspor Wizard, saya memilih untuk mengekspor kunci pribadi, klik next. Saya juga memilih untuk Export all extended properties(sekali lagi, saya tidak yakin apakah itu perlu). Saya memilih untuk menggunakan kata sandi sederhana ( pass) dan enkripsi default. Pilih folder untuk diekspor dan beri nama file. Anda selalu dapat memindahkan dan mengganti nama file jika perlu. Demi kesederhanaan mari kita salin ke folder conf Anda di bawah instalasi Apache Anda (Dalam kasus saya:) dan beri C:\apache\confnama file myCert( file yang dihasilkan akan menjadi.pfx file)
Langkah 3 - Konversi .pfxfile untuk digunakan dengan Apache
Dari sini saya pada dasarnya mengikuti tutorial di sini , tetapi saya akan menambahkan instruksi di sini (tweak untuk pengaturan kami) jika situs tersebut turun.
Buka Prompt Perintah Anda di /apache/conf/folder
Jalankan perintah berikut: Catatan: Ini mengasumsikan Anda memiliki openssl.exedalam binfolder di folder root apache (ini harus standar / default)
Ini akan meminta Anda untuk kata sandi, masukkan apa yang Anda input untuk Langkah 2 ketika Anda mengekspor .pfxfile. Dalam kasus saya, ini pass. Saya memasukkan kata sandi yang sama untuk frasa PEM dan lagi untuk memverifikasi. Ini akan membuat file baru bernamaprivateKey.pem di folder conf Anda.
Sekali lagi Anda akan dimintai kata sandi ( Enter pass phrase for privateKey.pem:), gunakan kata sandi yang Anda tentukan privateKey.pem. (Dalam kasus saya, pass)
Anda akan melihat pesan yang mengatakan writing RSA keydan file baru dipanggil private.pemdi conf/folder Anda . Ini akan menjadi SSLCertificateKeyFile Anda.
Sekarang untuk menghasilkan Sertifikat Server yang sesuai. Lari:
Ini akan meminta Anda untuk kata sandi, masukkan apa yang Anda input untuk Langkah 2 ketika Anda mengekspor .pfxfile. Masukkan dan Anda sekarang akan memiliki file yang disebut EntrustCert.pemdi conffolder Anda . Ini adalah SSLCertificateFile Anda
Langkah 4 - Konfigurasi httpd.conf
Gunakan file baru yang dibuat sebagai kunci dan sertifikat server Anda. Pastikan untuk mengubah root dokumen Anda ke tempat file Anda!
Batalkan komentar Include conf/extra/httpd-ssl.conf(CATATAN: Pastikan di situlah file berada!)
Saya juga memiliki pustaka ikal dan buka ssl termasuk:
# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"
Modul-modul ini seharusnya tidak perlu, tetapi saya perhatikan bahwa saya telah mengaktifkannya: LoadModule rewrite_module modules/mod_rewrite.so LoadModule filter_module modules/mod_filter.so LoadModule deflate_module modules/mod_deflate.so
Langkah 5 - Konfigurasi httpd-ssl.conf
Dalam extra/folder di conf/folder Anda akan melihat file bernamahttpd-ssl.conf .
5a. UbahDocumentRoot - Ubah DocumentRootdari default ke direktori tempat file Anda berada.
Secara keseluruhan, dalam <VirtualHost _default_:443>tag.
# General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs/MYSITE"
ServerName localhost:443
ServerAdmin [email protected]
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. Keep
# in mind that if you have both an RSA and a DSA certificate you
# can configure both in parallel (to also allow the use of DSA
# ciphers, etc.)
# Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
# require an ECC certificate which can also be configured in
# parallel.
SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
#SSLCertificateFile "${SRVROOT}/conf/server-dsa.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-ecc.crt"
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
# ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-dsa.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-ecc.key"
Mulai ulang Apache
Setelah melakukan perubahan ini, Anda harus dapat memulai ulang Apache dan menavigasi ke https: // localhost tanpa peringatan keamanan dan gembok kecil!
dan akses halaman di perangkat apa pun yang terhubung jaringan Anda. Ini sangat berguna dalam kasus seperti "Anda harus menguji API GeoLokasi HTML5 di ponsel, dan Chrome membatasi API hanya di koneksi aman".
Saya ingin menambahkan sesuatu ke jawaban @CodeWarrior yang sangat bagus, yang berfungsi dengan baik di Chrome, tetapi untuk Firefox perlu langkah tambahan.
Karena Firefox tidak mendorong Sertifikat CA yang dilakukan Windows secara default, Anda harus melanjutkan about:config, gulir ke bawahsecurity.enterprise_roots.enabled dan ubah ke true.
Sekarang sertifikat Anda harus dianggap valid juga di Firefox.
Tentu saja ini hanya untuk tujuan pengembangan, karena kepercayaan ssl adalah masalah keamanan kritis dan ubah pengaturan ini hanya jika Anda mengetahui implikasinya.
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
Tampar di subdomain dan nomor port Anda dan Anda siap untuk melanjutkanhttps://youruniquesubdomain.serveo.net
Jawaban:
Saya baru saja mencoba ini - saya perlu menguji beberapa kode pengembangan pada localhost Apache saya di Windows . Ini WAAAY lebih sulit dari yang seharusnya. Tapi di sini adalah langkah-langkah yang berhasil setelah banyak tusuk rambut ...
Saya menemukan bahwa instalasi Apache saya disertai dengan
openssl.exe
yang sangat membantu. Jika Anda tidak memiliki salinannya, Anda harus mengunduhnya. Salinan saya ada diApache2\bin
folder yang saya rujuk di bawah ini.Langkah:
Apache2\conf
folder..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Anda dapat mengosongkan semua pertanyaan kecuali:
Saat itu selesai, ketik
..\bin\openssl rsa -in blarg.pem -out blarg.key
Hasilkan sertifikat yang Anda tandatangani sendiri dengan mengetik:
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Buka
conf\httpd.conf
file Apache dan pastikan modul SSL diaktifkan - seharusnya tidak ada hash di awal baris ini:LoadModule ssl_module modules/mod_ssl.so
Beberapa instalasi Apache menempatkan konfigurasi SSL dalam file terpisah. Jika demikian, pastikan bahwa file conf SSL dimasukkan. Dalam kasus saya, saya harus batalkan komentar pada baris ini:
Include conf/extra/httpd-ssl.conf
Dalam konfigurasi SSL
httpd-ssl.conf
saya harus memperbarui baris berikut:SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
ke
SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
(Tanda kurung di jalur membingungkan modul, jadi kita perlu menghindarinya)
DocumentRoot
- atur ini ke folder untuk file web AndaServerName
- nama host serverSSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Mulai ulang Apache.
https://localhost/
di browser Anda.Semoga Anda berhasil sejauh ini. Jangan ragu untuk memperbarui posting ini dengan informasi bermanfaat lainnya.
(Tangkapan layar milik Neil Obremski dan artikelnya yang membantu - walaupun sekarang sudah ketinggalan zaman.)
sumber
Saya menggunakan ngrok ( https://ngrok.com/ ) untuk ini. ngrok adalah alat baris perintah dan membuat terowongan untuk localhost. Ini menciptakan koneksi http dan https. Setelah mengunduhnya, perintah berikut harus dijalankan:
(Dalam versi 2, sintaksnya adalah: ngrok http 80. Di versi 2, port apa pun bisa ditembus.)
Setelah beberapa detik, itu akan memberikan dua url:
Sekarang, kedua url mengarah ke localhost.
sumber
di sini adalah cara paling sederhana untuk melakukan ini
pertama-tama salin file server.crt & server.key ini (temukan dalam lampiran) ke direktori apache / conf / ssl Anda
kemudian buka file httpd.conf & tambahkan baris berikut
sumber
Untuk melindungi keamanan informasi yang dikirim ke dan dari server web Anda, adalah ide yang baik untuk mengaktifkan enkripsi komunikasi antara klien dan server. Ini sering disebut SSL .
Jadi mari kita atur HTTPS dengan sertifikat yang ditandatangani sendiri di Apache2. Saya akan mendaftar langkah-langkah yang harus Anda ikuti:
Seharusnya output
Pastikan Anda mendapatkan halaman default untuk apache2 seperti ini.
Silakan isi informasi sebagaimana ditunjukkan di bawah ini.
mykey.key dan mycert.pem harus dibuat di direktori kerja Anda saat ini.
Seharusnya output seperti ini
Silakan temukan dua baris ini dan ganti dengan jalur sertifikat dan kunci Anda.
Awal
Terakhir
Seharusnya menampilkan sesuatu seperti ini dengan peringatan bahwa halaman yang akan Anda lihat tidak aman karena kami telah mengkonfigurasi server dengan sertifikat yang ditandatangani sendiri.
sumber
default-ssl.conf
. Aku hendak mengubah namamycert
untukssl-cert-snakeoil
tetapi file ini sudah ada jadi saya hanya menggunakan itu! Jadi saya bisa melewati dua langkah dengan aman di Debian.Windows + Apache 2.4, misalnya:
batalkan komentar ssl_module di
httpd.conf
file Anda .dengarkan 443 port seperti 80 port di
httpd.conf
file Anda .batalkan komentar Termasuk host Virtual di
httpd.conf
file Anda .tambahkan VirtualHost di blog Anda
conf/extra/httpd-vhosts.conf
hanya nomor port
443
danSSL......
garis yang berbeda dari konfigurasi http normal.menghemat file konfigurasi Anda dan memulai kembali layanan apache. maka Anda dapat mengunjungi https: // localhost /
Peramban web akan memperingatkan Anda bahwa itu tidak aman pada saat pertama, tinggal pilih.
sumber
Ini sebenarnya cukup mudah, dengan asumsi Anda memiliki instalasi installsl berguna. (Di platform apa Anda?)
Dengan asumsi Anda menggunakan linux / solaris / mac os / x, Apache Apache SSL / TLS mini-HOWTO memiliki panduan yang sangat baik yang tidak akan saya buat di sini.
Namun, ringkasan eksekutif adalah bahwa Anda harus membuat sertifikat yang ditandatangani sendiri. Karena Anda menjalankan apache untuk localhost mungkin untuk pengembangan (yaitu bukan server web publik), Anda akan tahu bahwa Anda dapat mempercayai sertifikat yang ditandatangani sendiri dan dapat mengabaikan peringatan yang akan dilemparkan oleh browser Anda kepada Anda.
sumber
Ini harus bekerja Ubuntu, Mint mirip dengan Apache2
Ini adalah panduan yang bagus, jadi ikuti ini
https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
dan meninggalkan ssl.conf Anda seperti ini atau yang serupa
kamu bisa mendapatkannya.
Semoga bantuan ini untuk linuxer
sumber
Ini sangat sederhana,
jalankan saja perintah berikut
Itu saja, Anda sudah selesai.
Jika Anda ingin memaksakan SSL (selalu menggunakan https), edit file:
dan tambahkan satu baris ini
lalu mulai kembali
sumber
systemctl reload apache2
mengejarsudo a2ensite default-ssl.conf
.Pembaruan 2019
Saya memposting jawaban ini karena saya sendiri berjuang dengan ini dan Chrome memperbarui keamanan mereka dengan memerlukan Nama Alternatif Subjek yang banyak posting tidak miliki karena tidak diperlukan ketika mereka diposting sebagai jawaban. Saya berasumsi bahwa WAMP sudah diinstal.
LANGKAH 1
Unduh OpenSSL Light dan instal
LANGKAH 2 (Opsional)
Meskipun bagian ini bersifat opsional, tetapi nantinya lebih mudah untuk mengeksekusi perintah. Jika Anda melewati langkah ini, Anda harus memberikan path lengkap ke openssl.exe tempat Anda akan menjalankan perintah. Jika Anda lebih suka mengaturnya, perbarui jalur openssl.exe di Variabel Lingkungan.
LANGKAH 3
Buat folder bernama "kunci" di
c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/
direktori.Buat file konfigurasi untuk CA MyCompanyCA.cnf Anda dengan konten (Anda dapat mengubahnya sesuai kebutuhan Anda):
Buat file konfigurasi ekstensi MyCompanyLocalhost.ext untuk sertifikat server web Anda:
LANGKAH 4
Jalankan perintah ini dalam urutan yang diberikan untuk menghasilkan kunci dan sertifikat:
Akibatnya, Anda akan memiliki file MyCompanyCA.cer , MyCompanyLocalhost.cer dan MyCompanyLocalhost.pvk .
LANGKAH 5
Instal MyCompanyCA.cer di bawah
Untuk menginstal MyCompanyLocalhost.cer cukup klik dua kali.
LANGKAH 6
Buka
c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/httpd.conf
dan hapus komentar (hapus tanda #) 3 baris berikut:LANGKAH 7
Buka
c:/wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.conf
dan ubah semua parameter ke yang ditunjukkan di bawah ini:Catatan: Ini bagian yang sulit. Jika Anda membuat kesalahan kecil saat mengedit file ini, SSL tidak akan berfungsi. Buat salinannya sebelum Anda mengeditnya.
LANGKAH 8
Mulai ulang Wamp dan Chrome. Localhost sekarang aman: https: // localhost
sumber
HowTo for CentOS ini mudah diikuti dan hanya membutuhkan waktu sekitar 5 menit: https://wiki.centos.org/HowTos/Https
Saya tidak akan merinci setiap langkah di sini, tetapi langkah utamanya adalah:
1.) Instal modul openssl untuk apache, jika belum diinstal
2.) Hasilkan sertifikat yang ditandatangani sendiri
--Pada titik ini, Anda harus dapat mengunjungi https: // localhost berhasil
3.) Mengatur host virtual jika diperlukan
sumber
Ini bekerja pada Windows 10 dengan Apache24:
1 - Tambahkan ini di bagian bawah
C:/Apache24/conf/httpd.conf
2 - Tambahkan
server.crt
danserver.key
file diC:/Apache24/conf/ssl
folder. Lihat jawaban lain di halaman ini untuk menemukan 2 file itu.Itu dia!
sumber
tl; dr
Dan lingkungan lokal Anda dapat diakses dari https://youruniquesubdomain.serveo.net
Serveo adalah yang terbaik
Saya tidak percaya ketika saya menemukan layanan ini. Ini menawarkan segalanya dan ini adalah yang termudah untuk digunakan. Jika ada alat yang mudah dan tidak menyakitkan untuk setiap masalah ...
sumber
Menjalankan Apache pada Windows 10 di sini. Saya tidak bisa membuat Chrome mempercayai sertifikat yang dibuat di atas oleh Simon. Apa yang akhirnya saya lakukan adalah menggunakan PowerShell untuk menghasilkan sertifikat yang ditandatangani sendiri.
Langkah 1 - Hasilkan sertifikat yang ditandatangani sendiri
Di PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
1Langkah 2 - Konfigurasikan dan Ekspor Sertifikat
Ketik
Certificate
ke dalam bilah pencarian Windows, klikManage Computer Certificates
item panel kontrol yang disarankan.Dari program Manajemen Sertifikat yang muncul (certlm), Anda seharusnya sekarang melihat
localhost
kunci di bawahPersonal >> Certificates
.Saya menyalin sertifikat ini ke
Trusted Root Certification Authorities
. Saya akan jujur karena saya tidak yakin apakah itu perlu.Memilih sertifikat yang baru disalin, klik dua kali (sertifikat localhost). Dari modal Sertifikat, klik
Details
tab, lalu tombolCopy to File...
tombol.Ini akan memunculkan dan Ekspor Wizard, saya memilih untuk mengekspor kunci pribadi, klik next. Saya juga memilih untuk
Export all extended properties
(sekali lagi, saya tidak yakin apakah itu perlu). Saya memilih untuk menggunakan kata sandi sederhana (pass
) dan enkripsi default. Pilih folder untuk diekspor dan beri nama file. Anda selalu dapat memindahkan dan mengganti nama file jika perlu. Demi kesederhanaan mari kita salin ke folder conf Anda di bawah instalasi Apache Anda (Dalam kasus saya:) dan beriC:\apache\conf
nama filemyCert
( file yang dihasilkan akan menjadi.pfx
file)Langkah 3 - Konversi
.pfx
file untuk digunakan dengan ApacheDari sini saya pada dasarnya mengikuti tutorial di sini , tetapi saya akan menambahkan instruksi di sini (tweak untuk pengaturan kami) jika situs tersebut turun.
Buka Prompt Perintah Anda di
/apache/conf/
folderJalankan perintah berikut: Catatan: Ini mengasumsikan Anda memiliki
openssl.exe
dalambin
folder di folder root apache (ini harus standar / default)Ini akan meminta Anda untuk kata sandi, masukkan apa yang Anda input untuk Langkah 2 ketika Anda mengekspor
.pfx
file. Dalam kasus saya, inipass
. Saya memasukkan kata sandi yang sama untuk frasa PEM dan lagi untuk memverifikasi. Ini akan membuat file baru bernamaprivateKey.pem
di folder conf Anda.Lalu lari
Sekali lagi Anda akan dimintai kata sandi (
Enter pass phrase for privateKey.pem:
), gunakan kata sandi yang Anda tentukanprivateKey.pem
. (Dalam kasus saya,pass
)Anda akan melihat pesan yang mengatakan
writing RSA key
dan file baru dipanggilprivate.pem
diconf/
folder Anda . Ini akan menjadi SSLCertificateKeyFile Anda.Sekarang untuk menghasilkan Sertifikat Server yang sesuai. Lari:
Ini akan meminta Anda untuk kata sandi, masukkan apa yang Anda input untuk Langkah 2 ketika Anda mengekspor
.pfx
file. Masukkan dan Anda sekarang akan memiliki file yang disebutEntrustCert.pem
diconf
folder Anda . Ini adalah SSLCertificateFile AndaLangkah 4 - Konfigurasi
httpd.conf
Gunakan file baru yang dibuat sebagai kunci dan sertifikat server Anda. Pastikan untuk mengubah root dokumen Anda ke tempat file Anda!
Juga di
httpd.conf
:LoadModule ssl_module modules/mod_ssl.so
diberi komentar (tidak#
di depan)LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule http2_module modules/mod_http2.so
Include conf/extra/httpd-ssl.conf
(CATATAN: Pastikan di situlah file berada!)Saya juga memiliki pustaka ikal dan buka ssl termasuk:
Modul-modul ini seharusnya tidak perlu, tetapi saya perhatikan bahwa saya telah mengaktifkannya:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
Langkah 5 - Konfigurasi
httpd-ssl.conf
Dalam
extra/
folder diconf/
folder Anda akan melihat file bernamahttpd-ssl.conf
.5a. Ubah
DocumentRoot
- UbahDocumentRoot
dari default ke direktori tempat file Anda berada.5b. Ubah
ServerName
- UbahServerName
dari default (sepertiwww.example.com:443
) kelocalhost:443
5c. Ubah
SSLCertificateFile
Ubah
SSLCertificateFile
dari default (${SRVROOT}/conf/server.crt
) ke${SRVROOT}/conf/EntrustCert.pem
5c. Ubah
SSLCertificateKeyFile
Ubah
SSLCertificateKeyFile
dari default (${SRVROOT}/conf/server.key
) ke${SRVROOT}/conf/private.pem
Secara keseluruhan, dalam
<VirtualHost _default_:443>
tag.Mulai ulang Apache
Setelah melakukan perubahan ini, Anda harus dapat memulai ulang Apache dan menavigasi ke https: // localhost tanpa peringatan keamanan dan gembok kecil!
Saya harap ini membantu seseorang! 😊
Sumber:
1.) Jawaban Auri Rahimzadeh tentang membuat sertifikat yang ditandatangani sendiri
2.) Entrust Datacard - Bagaimana cara mengonversi .pfx untuk digunakan dengan server Apache?
sumber
Metode sederhana lain adalah menggunakan Python Server di Ubuntu.
Hasilkan server.xml dengan perintah berikut di terminal:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Catatan: Asumsikan Anda telah menginstal openssl .
Simpan kode di bawah ini dalam file yang bernama
simple-https-server.py
dalam direktori apa pun yang Anda inginkan untuk menjalankan server.Jalankan server dari terminal:
python simple-https-server.py
Kunjungi halaman di:
https://localhost:4443
Catatan tambahan ::
Anda dapat mengubah port in
simple-https-server.py
file sejalanhttpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
Anda dapat mengubah
localhost
IP Anda di baris yang sama di atas:httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
dan akses halaman di perangkat apa pun yang terhubung jaringan Anda. Ini sangat berguna dalam kasus seperti "Anda harus menguji API GeoLokasi HTML5 di ponsel, dan Chrome membatasi API hanya di koneksi aman".
Intisari: https://gist.github.com/dergachev/7028596
http://www.piware.de/2011/01/creating-an-https-server-in-python/
sumber
Bagi mereka yang menggunakan macOS, ini adalah panduan hebat https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions untuk mengatur lingkungan dev web lokal Anda. Pada bagian ke-3 https://getgrav.org/blog/macos-sierra-apache-ssl Andy Miller menjelaskan cara mengatur apache dengan sertifikat yang ditandatangani sendiri:
Ini adalah perintah utama:
Tetapi ada beberapa langkah yang perlu Anda ikuti, jadi periksalah dan semoga berhasil! ;)
sumber
Saya ingin menambahkan sesuatu ke jawaban @CodeWarrior yang sangat bagus, yang berfungsi dengan baik di Chrome, tetapi untuk Firefox perlu langkah tambahan.
Karena Firefox tidak mendorong Sertifikat CA yang dilakukan Windows secara default, Anda harus melanjutkan
about:config
, gulir ke bawahsecurity.enterprise_roots.enabled
dan ubah ke true.Sekarang sertifikat Anda harus dianggap valid juga di Firefox.
Tentu saja ini hanya untuk tujuan pengembangan, karena kepercayaan ssl adalah masalah keamanan kritis dan ubah pengaturan ini hanya jika Anda mengetahui implikasinya.
sumber