ฉันตั้งค่า SSL บนเว็บเซิร์ฟเวอร์ตอนนี้ฉันต้องการสองไฟล์:
- ใบรับรอง
- รหัสใบรับรอง
ฉันจะสร้างใบรับรองที่ลงนามเองเพื่อการทดสอบได้อย่างไร
ฉันตั้งค่า SSL บนเว็บเซิร์ฟเวอร์ตอนนี้ฉันต้องการสองไฟล์:
ฉันจะสร้างใบรับรองที่ลงนามเองเพื่อการทดสอบได้อย่างไร
คำตอบ:
อูบุนตูแม้แต่รสชาติที่ 'น้อยที่สุด' มาพร้อมกับssl-cert
แพ็คเกจที่ติดตั้งไว้ล่วงหน้าซึ่งหมายความว่าคุณไม่จำเป็นต้องทำอะไรเลย
ไฟล์ที่คุณกำลังค้นหาอยู่ในระบบของคุณแล้ว:
/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key
ขั้นสูง:
หากด้วยเหตุผลบางประการที่คุณต้องสร้างใบรับรองใหม่คุณสามารถเรียกใช้
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
หากคุณต้องการเปลี่ยนวันหมดอายุของใบรับรองคุณคุณสามารถจัดการสคริปต์ทำให้ SSL-CERT /usr/sbin/make-ssl-cert
ที่ ประมาณ 124 มีสายคล้ายกับสิ่งนี้:
openssl req -config $TMPFILE -new -x509 -nodes \
ที่ที่คุณสามารถเปลี่ยนวันหมดอายุได้โดยเพิ่ม-days
อาร์กิวเมนต์:
openssl req -config $TMPFILE -new -days 365 -x509 -nodes \
ตัวเลือกเพิ่มเติมสามารถพบได้ในหน้าคู่มือของreq
/usr/share/ssl-cert/ssleay.cnf
เพื่อใช้จาก
www.test.mydomain.com
) โดยใช้hostname
คำสั่งใน VM CLI จากนั้นสร้างคีย์ใหม่ตามที่คุณแนะนำด้วย--force-overwrite
ชื่อสามัญ (CN) ของคีย์นั้นจะตรงกับ URL ทดสอบ ในที่สุดบนเครื่องโฮสต์การติดตั้งคีย์เป็น Trusted Root Certificate Authority (ในการตั้งค่า / ขั้นสูงของ Chrome) ให้แถบที่อยู่สีเขียวที่เป็นเจ้าข้าวเจ้าของ
make-ssl-cert
คำสั่งจะช่วยวันให้ฉัน!
ดังที่กล่าวไว้แล้วเซิร์ฟเวอร์ของ Ubuntu มาพร้อมกับเครื่องมือที่จำเป็น ทั้งนี้ขึ้นอยู่กับรุ่นของเซิร์ฟเวอร์ของคุณคุณจะต้องมองขึ้นเอกสารที่เฉพาะเจาะจง ผมจะพยายามสรุปกระบวนการสร้างใบรับรองลงนามด้วยตนเองของLTS ปัจจุบัน (12.04)
ก่อนอื่นคุณต้องสร้างคีย์สำหรับคำขอลงนามใบรับรอง (CSR):
openssl genrsa -des3 -out server.key 2048
มันขึ้นอยู่กับคุณที่จะป้อนข้อความรหัสผ่านหรือไม่ หากคุณทำเช่นนั้นทุกครั้งที่คุณเริ่มใช้บริการส่งใบรับรองนั้นคุณจะต้องระบุข้อความรหัสผ่าน Otoh คุณสามารถสร้างคีย์ "ที่ไม่ปลอดภัย" ได้โดยไม่ต้องใส่รหัสผ่านจากรหัสที่ปลอดภัย:
openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key
และตอนนี้คุณจะสร้าง CSR จากกุญแจ ด้วย CSR และคีย์สามารถสร้างใบรับรองที่ลงนามเองได้:
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
ขั้นตอนสุดท้ายประกอบด้วยการติดตั้งใบรับรองและคีย์ใน Debian / Ubuntu มักจะอยู่ใน/etc/ssl
:
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private
และในที่สุดแอปพลิเคชันที่ใช้ใบรับรอง / คีย์จะต้องได้รับการกำหนดค่าตามความเหมาะสม