Bagaimana cara mudah membuat sertifikat SSL dan mengkonfigurasinya di Apache2 di Mac OS X?

34

Saya ingin menggunakan Mac OS X dengan https untuk tes pengembangan lokal. Bagaimana saya dapat dengan mudah membuat Apache2 menanggapi ssl, hanya untuk proposal pengujian - Saya tidak ingin sertifikat asli, hanya palsu untuk membuat https lokal berfungsi

Daniel Cukier
sumber

Jawaban:

58

Untuk pengujian pengembangan lokal, sertifikat yang ditandatangani sendiri sudah memadai. Anda dapat menghasilkan satu dengan kit OpenSSL seperti:

Menghasilkan kunci pribadi:

openssl genrsa -des3 -out server.key 1024

keluaran:

Menghasilkan kunci pribadi RSA, modulus panjang 1024 bit
.................................................. ....... ++++++
........ ++++++
e adalah 65537 (0x10001)
Masukkan frase pass PEM:
Memverifikasi kata sandi - Masukkan frase pass PEM:

masukkan frasa sandi untuk kunci pribadi Anda.

Menghasilkan CSR (permintaan penandatanganan sertifikat):

openssl req -new -key server.key -out server.csr

itu akan meminta detail seperti ini:

Nama Negara (2 kode huruf) [GB]:
Nama Negara Bagian atau Provinsi (nama lengkap) [Berkshire]:
Nama Daerah (mis. Kota) [Newbury]:
Nama Organisasi (misalnya, perusahaan) [Perusahaan Saya Ltd]:
Nama Unit Organisasi (misalnya, bagian) []:
Nama Umum (mis. Nama Anda atau nama host server Anda) []:
Alamat email []:
Silakan masukkan atribut 'ekstra' berikut
untuk dikirim bersama permintaan sertifikat Anda
Kata sandi tantangan []:
Nama perusahaan opsional []:

itu cukup mudah, nama umum adalah nama host server Anda seperti yang tertulis di dalam tanda kurung.

Membuat sertifikat yang ditandatangani sendiri:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Mengkonfigurasi SSL di httpd.conf untuk Apache:

SSLEngine aktif
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(ganti jalur dengan jalur ke sertifikat dan kunci Anda)

Mulai ulang Apache :

apachectl restart

Apache akan menanyakan kata sandi Anda ke kunci Anda. Jika Anda merasa akan banyak mematikan server, Anda mungkin ingin menghapus kata sandi dari kunci sehingga Anda dapat menghindari memasukkannya setiap kali. Jika tidak, jangan khawatir. Jika demikian, selesaikan langkah ini setelah langkah 2 ( Menghasilkan CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key
John T
sumber
itu hampir memprihatinkan bagi saya. Ketika saya mencoba mengakses beberapa halaman di Rails saya, menggunakan http halaman itu ada, tetapi ketika saya menggunakan https, ia mengembalikan halaman yang tidak ditemukan. Apakah Anda tahu apa yang mungkin terjadi?
Daniel Cukier
Apakah Anda mengubah virtualhost Anda untuk menggunakan https di port 443? Seharusnya terlihat seperti ini: <VirtualHost 192.168.1.100:443> SSLEngine On, dll .... </VirtualHost>
John T
Terima kasih untuk ini, saya mendapat sertifikat SSL yang berfungsi dengan baik pada Lion dengan ini. Hanya berpikir saya akan menambahkan beberapa poin meskipun itu akan membuat hidup Anda lebih mudah. Apple Apache memiliki httpd-ssl.conf yang sudah diatur untuk mencari di / private / etc / apache2 jadi jika Anda meletakkan server Anda. * File ada satu file yang kurang untuk diedit. Juga, Anda perlu mengedit httpd.conf karena baris yang menyertakan httpd-ssl.conf dikomentari secara default. Akhirnya, 365 hari agak singkat, Anda mungkin ingin menetapkan tanggal kedaluwarsa yang lebih lama atau Anda akan melakukannya lagi tahun depan (saya menggunakan 3650)
GordonM
Jika ada yang mengalami masalah seperti saya, Anda akan senang menemukan tautan ini, yang menjelaskan cara mengatur virtualhost dengan virtualhostx dengan benar untuk bekerja dengan ssl yellowrobot.heroku.com/blog/2012/01/22/…
Relequestual
Jika ini adalah mesin dev Anda, Anda mungkin ingin memiliki kunci pribadi tanpa kata sandi: openssl rsa -in server.key -out server.nopass.key
Aldekein