รหัสผ่าน SSL ใน apache2 รีสตาร์ท


33

ฉันตั้งค่าใบรับรองไวด์การ์ด SSL จาก Godaddy บน Apache2 เมื่อใดก็ตามที่เซิร์ฟเวอร์รีสตาร์ทเครื่องจะถามรหัสผ่านสำหรับคีย์ส่วนตัวของใบรับรอง SSL

เป็นวิธีที่ดีที่สุดในการลบอุปสรรคนี้เพื่อเริ่มต้นใหม่เพราะเมื่อ logfile หมุนรีสตาร์ทเกิดขึ้นในช่วงกลางของคืนเซิร์ฟเวอร์ไม่ได้กลับมาและฉันได้รับลูกค้าโทรไม่มีความสุขในตอนเช้าเพราะมันเป็นเซิร์ฟเวอร์ที่ใช้ร่วมกัน .


5
ในขณะที่ตอบคำถามจริงแล้วให้ฉันเพิ่ม: การหมุน Logfile ไม่ต้องรีสตาร์ท การโหลดซ้ำจะใช้งานได้และคุณไม่จำเป็นต้องแสดงข้อมูลรับรองใด ๆ
Jan Jungnickel

ขอบคุณ ม.ค. - จุดดี - ฉันไม่แน่ใจว่าทำไมชิ้นเริ่มต้นใหม่ - ดูเหมือนจะเกิดขึ้นประมาณ 1 สัปดาห์ฉันต้องขุดให้มากขึ้นเพื่อหาสาเหตุ
ryw

คำตอบ:


28

ในการทำให้ apache ได้รับข้อความรหัสผ่านทุกครั้งที่รีสตาร์ทให้เพิ่มส่วนนี้ใน httpd.conf:

SSLPassPhraseDialog exec:/path/to/passphrase-file

ในข้อความรหัสผ่านของคุณ:

#!/bin/sh
echo "passphrase"

และสร้างไฟล์ปฏิบัติการวลีรหัสผ่าน:

chmod +x passphrase-file

1
ทำงานให้ฉันด้วย! : D
markcial

5
อย่าลืมตั้งค่าการอนุญาตที่เหมาะสมในสคริปต์ที่มีข้อความรหัสผ่านมิฉะนั้นคุณจะลบความปลอดภัยใด ๆ ที่มีข้อความรหัสผ่านให้คุณอย่างมีประสิทธิภาพ (คุณควรตั้งค่าการอนุญาตที่เหมาะสมบนกุญแจตามที่อธิบายไว้ในคำตอบของ Max)
voretaq7

6
การจัดเก็บคีย์ (ด้วยวลีรหัสผ่าน) ที่มีสิทธิ์ 600 รายการและสคริปต์นี้พร้อมสิทธิ์ 700 รายการปลอดภัยกว่าเพียงการจัดเก็บคีย์โดยไม่ต้องใช้วลีรหัสผ่านพร้อมสิทธิ์ 600 รายการเนื่องจากเจ้าของไฟล์ทั้งสองจะต้องเป็นผู้ใช้รูท
zelanix

5
ฉันเห็นด้วย; นี่คือความปลอดภัยไร้จุดหมาย ทำทุกวิถีทางลบข้อความรหัสผ่านจากคีย์สำหรับการรีสตาร์ทอัตโนมัติ แต่อย่าคิดว่าคุณสามารถถอนการรักษาความปลอดภัยที่คุณเพิ่งทำไปได้ มันมักจะเป็นการแลกเปลี่ยนที่ดี แต่มันก็เป็นการแลกเปลี่ยนที่ดี
MadHatter รองรับโมนิก้า

เพื่อความสมบูรณ์ของลิงก์ไปยังเอกสาร Apache ที่เกี่ยวข้อง: httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslpassphrasedialog
alk

29

คุณต้องลบการเข้ารหัสออกจากไฟล์คีย์ส่วนตัวของคุณดังนี้:

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

mv server.key.new server.key

ตรวจสอบให้แน่ใจว่าไฟล์คีย์ใหม่สามารถอ่านได้โดยรูทเท่านั้นไม่เช่นนั้นใครก็ตามที่เข้าถึงเชลล์ไปยังเซิร์ฟเวอร์นี้จะสามารถคว้าไพรเวตคีย์และเลียนแบบเซิร์ฟเวอร์ของคุณได้

หากต้องการทำให้คีย์อ่านได้โดยรูทเท่านั้นให้ทำ 'chmod 600 server.key.new' ก่อนทำการสลับคีย์


ฉันลองใช้ความคิดของคุณยังคงได้รับความท้าทายใน sudo ./apache2 เริ่มใหม่ :(
ryw

4
+1 เพราะนั่นไม่ใช่ "ความคิด" มันเป็นขั้นตอนจริง
codehead

ฉันใช้คำว่า "ความคิด" เพราะมันไม่ได้ผลสำหรับฉัน
ryw

2
ข้อความรหัสผ่านทำให้ใบรับรอง SSL มีความปลอดภัยมากขึ้นได้อย่างไรถ้าคุณสามารถลบออกได้อย่างง่ายดายโดยไม่ต้องใส่ข้อความรหัสผ่าน (หรือขอรหัสผ่านสำหรับคุณหรือไม่)
2693017

3
@ user2693017 - คำสั่ง openssl อธิบายไว้ที่นี่จะถามรหัสผ่านของคีย์ส่วนตัวที่เข้ารหัส หากไม่ทราบรหัสผ่านการลบออกจะไม่สามารถทำได้
Michael Paesold
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.