สร้างใบรับรอง SSL ที่ลงชื่อด้วยตนเองสำหรับ apache


10

ฉันต้องการสร้างใบรับรองที่ลงชื่อด้วยตนเองสำหรับเว็บไซต์ ใบรับรองเก่าหมดอายุไม่กี่วันที่ผ่านมา มี NameVirtualHosts มากกว่าหนึ่งโฮสต์บนระบบ คำสั่งที่ฉันใช้ในการสร้างใบรับรองนั้นนำมาจากเว็บไซต์กวดวิชาเดียวและคือ:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr 
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

หลังจากนี้ในไฟล์ ssl.conf ฉันได้ระบุไว้ในส่วน VirtualHost พร้อมกับการตั้งค่าเก่าโดยผู้ดูแลระบบคนอื่น

SSLEngine on
SSLCertificateFile <full_path>/server.crt
SSLCertificateKeyFile <full_path>/server.key

ในการเริ่มต้นเซิร์ฟเวอร์ฉันได้รับข้อความต่อไปนี้ในล็อกไฟล์และเซิร์ฟเวอร์ไม่สามารถเริ่มต้นได้

ใน error_log ข้อความไฟล์คือ

 [Mon Jun 01 23:52:46 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

ในข้อความไฟล์ ssl_error_log คือ

 [Mon Jun 01 23:52:46 2009] [error] Init: Private key not found
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

ฉันจะขอบคุณจริง ๆ ถ้ามีใครสามารถอธิบายวิธีแก้ปัญหานี้ ฉันได้ลองใช้เว็บไซต์บทแนะนำอื่น ๆ เกี่ยวกับใบรับรอง SSL ที่ลงชื่อด้วยตนเองแล้ว

คำตอบ:


21

ใช้ซับในนี้เพื่อสร้างใบรับรองและคีย์ในไฟล์เดียว

openssl req -new -x509 -days 999 -nodes -out apache.pem -keyout apache.pem

จากนั้นการกำหนดค่าเดียวที่คุณต้องการคือ

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

คุณหมายถึงเพิ่มข้างบนบรรทัด sslengine on และ sslcertificatefile / etc / ssh
Rajat

ใช้สำหรับการกำหนดค่า apache ไม่ใช่ ssh
hayalci

1
คำสั่งนั้นจะปล่อยให้คีย์ส่วนตัวในส่วนที่ชัดเจนของระบบไฟล์ตรงกันข้ามกับคำสั่งดั้งเดิมของ OP การเว้น-nodesตัวเลือกการเข้ารหัสคีย์โดยใช้ Triple-DES (แน่นอนวลีรหัสผ่านของคีย์จะต้องมีให้เมื่อใดก็ตามที่เซิร์ฟเวอร์เริ่มทำงาน) reqคำสั่งOpenSSL ไม่สนับสนุนการสร้างคีย์ที่เข้ารหัสลับมากขึ้น แต่สามารถใช้คีย์ที่เข้ารหัสอย่างยิ่งที่สร้างขึ้นก่อนหน้านี้
Calrion

4

สิ่งนี้อาจดูเล็กน้อย แต่ตรวจสอบสิทธิ์ในไฟล์. key ของคุณ


+1 บางครั้งสิ่งเล็ก ๆ น้อย ๆ ก็คือความคิดที่น้อยที่สุด
Burkhard

0

คุณสามารถใช้openssl req -newkey rsa:1024 -keyout privkey.pemเพื่อบันทึกคีย์ SSL ที่ถูกสร้างขึ้นในกรณีที่การสร้างคีย์ไม่ถูกต้อง

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