Kata sandi SSL pada apache2 restart

33

Saya menyiapkan sertifikat wildcard SSL dari Godaddy di Apache2. Setiap kali server dinyalakan, ia meminta kata sandi untuk kunci pribadi sertifikat SSL.

Apa cara terbaik untuk menghilangkan hambatan ini untuk memulai kembali, karena ketika rotasi logfile restart di tengah malam, server tidak muncul kembali, dan saya mendapat panggilan klien yang tidak menyenangkan di pagi hari, karena itu adalah server bersama .

ryw
sumber
5
Sementara pertanyaan aktual telah dijawab, izinkan saya menambahkan: Rotasi logfile tidak memerlukan restart. Muat ulang akan baik-baik saja dan tidak akan mengharuskan Anda menunjukkan kredensial.
Jan Jungnickel
Terima kasih Jan - titik yang baik - Aku benar-benar tidak yakin mengapa slice tersebut restart - tampaknya terjadi sekitar 1x seminggu saya harus menggali lebih untuk mencari tahu mengapa
ryw

Jawaban:

28

Untuk membuat apache menerima frasa sandi setiap kali restart, tambahkan ini ke httpd.conf:

SSLPassPhraseDialog exec:/path/to/passphrase-file

dalam file frasa sandi Anda:

#!/bin/sh
echo "passphrase"

dan membuat file frasa sandi dapat dieksekusi:

chmod +x passphrase-file
air dingin
sumber
1
bekerja untuk saya juga! : D
markcial
5
Ingatlah untuk mengatur izin yang tepat pada skrip yang berisi frasa sandi , jika tidak, Anda telah secara efektif menghapus keamanan yang diberikan frasa sandi tersebut kepada Anda. (Anda juga harus mengatur izin yang tepat pada kunci, seperti yang dijelaskan dalam jawaban Max).
voretaq7
6
Bagaimana cara menyimpan kunci (dengan frasa sandi) dengan 600 izin dan skrip ini dengan 700 izin lebih aman daripada hanya menyimpan kunci tanpa frasa sandi dengan 600 izin mengingat bahwa pemilik kedua file perlu menjadi pengguna root, bukan?
zelanix
5
Saya setuju; ini adalah keamanan yang tidak ada gunanya. Dengan segala cara, menghapus frasa sandi dari kunci, untuk memulai ulang otomatis; tetapi jangan berpikir Anda bisa dengan cara apa pun mengembalikan kerugian keamanan yang baru saja Anda buat. Ini sering merupakan trade-off yang baik, tetapi ini merupakan trade-off.
MadHatter mendukung Monica
Untuk kelengkapan tautan ke dokumentasi Apache terkait: httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslpassphrasedialog
alk
29

Anda perlu menghapus enkripsi dari file kunci pribadi Anda seperti ini:

openssl rsa -in server.key -out server.key.new

mv server.key.new server.key

Pastikan file kunci baru hanya dapat dibaca oleh root - jika tidak, siapa pun yang memiliki akses shell ke server ini akan dapat mengambil kunci pribadi dan menyamar sebagai server Anda.

Untuk membuat kunci hanya dapat dibaca oleh root, lakukan 'chmod 600 server.key.new' sebelum bertukar kunci.

Max Alginin
sumber
saya mencoba ide Anda, masih mendapatkan tantangan pada sudo ./apache2 me-restart :(
ryw
4
Memberi +1 karena itu bukan "ide", ini adalah prosedur yang sebenarnya
codehead
Saya menggunakan istilah "ide" karena tidak berfungsi untuk saya.
ryw
2
bagaimana passphrase membuat sertifikat ssl lebih aman jika Anda dapat menghapusnya semudah itu tanpa membutuhkan passphrase? (atau apakah itu meminta Anda untuk frasa sandi?)
user2693017
3
@ user2693017 - Perintah openssl yang dijelaskan di sini akan meminta frasa sandi kunci pribadi terenkripsi. Tanpa mengetahui kata sandi, menghapusnya tidak akan berhasil.
Michael Paesold