ฉันจะติดตั้งใบรับรองหลักได้อย่างไร


223

ทุกคนสามารถชี้ให้ฉันเป็นกวดวิชาที่ดีในการติดตั้งใบรับรองหลักบน Ubuntu 10 หรือ 11 หรือไม่?

ฉันได้รับ.crtไฟล์ ฉันรวบรวมที่จำเป็นต้องสร้างไดเรกทอรีที่/usr/share/ca-certificates/newdomain.orgและวาง.crt ในไดเรกทอรีนั้น เกินกว่าที่ฉันไม่แน่ใจว่าจะดำเนินการต่อไปอย่างไร


19
หากใครเชื่อมโยงไปถึงที่นี่ด้วยไฟล์ cer แทนที่จะเป็น crt แสดงว่าเป็นสิ่งเดียวกัน (มีนามสกุลแตกต่างกัน) คุณควรจะสามารถทำตามคำตอบเหล่านี้และเพียงแค่แทนที่ชื่อไฟล์
Oli

Btw: เพื่อความสะดวกในการรับใบรับรอง CA จากบรรทัดคำสั่งให้ดูที่นี่บนเซิร์ฟเวอร์
Frank Nocke

คำตอบ:


298

การติดตั้งใบรับรองรูท / CA

ให้ไฟล์ใบรับรอง CA foo.crtทำตามขั้นตอนต่อไปนี้เพื่อติดตั้งบน Ubuntu:

  1. สร้างไดเรกทอรีสำหรับใบรับรอง CA เพิ่มเติมใน/usr/share/ca-certificates:

    sudo mkdir /usr/share/ca-certificates/extra
    
  2. คัดลอก.crtไฟล์CA ไปยังไดเรกทอรีนี้:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt
    
  3. ให้ Ubuntu เพิ่ม.crtเส้นทางของไฟล์ที่เกี่ยวข้อง/usr/share/ca-certificatesกับ/etc/ca-certificates.conf:

    sudo dpkg-reconfigure ca-certificates
    

    หากต้องการทำสิ่งนี้แบบไม่โต้ตอบให้รัน:

    sudo update-ca-certificates
    

ในกรณีที่.pemไฟล์บน Ubuntu ต้องแปลงเป็น.crtไฟล์ก่อน:

openssl x509 -in foo.pem -inform PEM -out foo.crt

54
วิธีการเกี่ยวกับการใช้/usr/local/share/ca-certificates(local!) แทนการใช้การจัดการแพคเกจระบบการจัดการ directoy?
gertvdijk

6
โปรดทราบว่า Firefox (และอาจจะบางซอฟต์แวร์อื่น ๆ ) ไม่ได้ใช้ใบรับรองทั้งระบบ แต่มีเก็บใบรับรองของตัวเอง: askubuntu.com/a/248326/79344
Amir Ali Akbari

12
โปรดทราบว่าไฟล์จะต้องอยู่ในรูปแบบ PEM และมีนามสกุล ".crt"
Anton

2
sudo dpkg-reconfigure ca-certificatesขอบคุณคนอื่นsudo update-ca-certificates --freshไม่ทำงานเมื่อวันที่ 16.10
antivirtel

7
คำสั่งopenssl x509 -in foo.pem -inform PEM -out foo.crtคัดลอกไฟล์ PEM ไปยังไฟล์ PEM สามารถทำได้ง่ายขึ้นโดยการเปลี่ยนชื่อ
แมเรียน

190

รับไฟล์ใบรับรอง CA 'foo.crt' ทำตามขั้นตอนเหล่านี้เพื่อติดตั้งบน Ubuntu:

ก่อนอื่นคัดลอก CA ของคุณไปยัง dir /usr/local/share/ca-certificates/

sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

จากนั้นอัปเดตที่เก็บ CA

sudo update-ca-certificates

นั่นคือทั้งหมดที่ คุณควรได้ผลลัพธ์นี้:

Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
Adding debian:foo.pem
done.
done.

ไม่จำเป็นต้องแก้ไขไฟล์ ลิงก์ไปยัง CA ของคุณถูกสร้างขึ้นโดยอัตโนมัติ

โปรดทราบว่าชื่อไฟล์ใบรับรองจะต้องลงท้าย.crtด้วยไม่เช่นนั้นupdate-ca-certificatesสคริปต์จะไม่มารับ

ขั้นตอนนี้จะยังสามารถใช้งานรุ่นใหม่: คู่มือ


1
ดูเหมือนว่านี่จะไม่ทำงานด้วยความน่าเชื่อถือ 14.04
mcantsin

25
โปรดทราบว่าซึ่งแตกต่างจากการเพิ่ม / usr / share / ca-certificate ดูเหมือนว่าจะใช้ได้เฉพาะในกรณีที่พวกเขาอยู่ใน / usr / local / share / ca-certificate โดยตรงและไม่ได้เป็นไดเรกทอรีย่อย +1 สำหรับการใช้โลคัลโฟลเดอร์แทนที่จะเป็นโฟลเดอร์ระบบ!
Toby J

2
นี้ถูกบันทึกไว้ในREADME.Debian
pevik

1
@ Sparky1 นี่ควรเป็นคำตอบที่ยอมรับได้
Drew Chapin

1
@ FrankankYu ขอบคุณ :) Debian ย้ายจาก Alioth ไปยัง Salsa สิ่งนี้ก็ใช้ได้เช่นกัน: salsa.debian.org/debian/ca-certificates/raw/master/debian/แต่แหล่งที่มานั้นดีกว่า
pevik

7

ติดตั้ง Certificate Authority บน Ubuntu

ฉันได้ทดสอบสิ่งนี้บน Ubuntu 14.04

นี่คือวิธีการแก้ปัญหาของฉันฉันมองและมองหาเป็นเวลานานพยายามที่จะคิดออกว่าจะได้รับการทำงาน

  1. แยก .cer ออกจากเบราว์เซอร์ ฉันใช้ IE 11
    • การตั้งค่า -> ตัวเลือกอินเทอร์เน็ต -> ผู้ออกใบรับรองระดับกลาง
    • เลือกผู้ให้บริการออกใบรับรองที่คุณต้องการส่งออก ( certutil -config - -pingจะแสดงรายการที่คุณกำลังใช้หากคุณอยู่หลังพร็อกซีขององค์กร)
    • ส่งออก -> เลือกรูปแบบที่คุณต้องการใช้: DER Encoder
  2. รับไฟล์. cer ไปยัง Ubuntu อย่างใด
  3. แปลงเป็น. crt openssl x509 -inform DER -in certificate.cer -out certificate.crt
  4. ทำไดเรกทอรีพิเศษ sudo mkdir /usr/share/ca-certificates/extra
  5. คัดลอกใบรับรองมากกว่า sudo cp certificate.crt /usr/share/ca-certificates/extra/certificate.crt
  6. sudo update-ca-certificates
  7. ถ้าไม่เช่นนั้นคุณต้องทำสิ่งที่ฉันทำไปที่ sudo nano /etc/ca-certificates.conf
  8. เลื่อนลงมาแล้วค้นหา .cer ของคุณและลบออก!จากด้านหน้าของชื่อไฟล์(update-ca-certificate doc) - หากคุณไม่พบใบรับรองของคุณdpkg-reconfigure ca-certificates
  9. วิ่ง sudo update-ca-certificates
  10. คุณอาจต้องเชื่อใจ CAs จาก Firefox, Chrome และอื่น ๆ ฉันต้องการให้ทำงานร่วมกับ Docker ดังนั้นหลังจากขั้นตอนเหล่านี้ทำงานกับ Docker

1
มันใช้งานได้ใน 16.04 ไหม
endolith

@endolith ทำงานให้ฉันใน 16.04
Shubham

4

คำตอบอื่น ๆ ใช้ไม่ได้กับ Ubuntu 18.04 ผนวกใบรับรองใบรับรองเพื่อ/etc/ssl/certs/ca-certificates.crtใช้คำสั่งต่อไปนี้:

cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt 

1
2 ชั่วโมง messing เกี่ยวกับคำสั่งนำเข้าก่อนที่ฉันจะพบสิ่งนี้ ที่สมบูรณ์แบบ!
beirtipol

คำสั่งที่ไม่ถูกต้องในขั้นตอนสุดท้ายคือการขาดหายไป:s cat YOUR_CERT_HERE.crt >> /etc/ssl/certs/ca-certificates.crt ขอบคุณสำหรับการแก้ปัญหานี้
SommerEngineering

หมายเหตุ: update-ca-certificatesนี่คือการแก้ปัญหาชั่วคราวเป็นใบรับรองเพิ่มจะถูกลบออกหลังจากที่ทำงาน
kenorb

3

เตรียมใบรับรอง (root / CA) บนเว็บเซิร์ฟเวอร์ในเครือข่ายของคุณหากคุณต้องการ

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

อัปเดต:จำเป็นต้องตรวจสอบว่ามันใช้งานได้กับ Ubuntu 11 ฉันรู้ว่าฉันเพิ่งทำสิ่งนี้บน Ubuntu 12.04 LTS


5
ไม่ได้ firefox คอนเทนเนอร์ใบรับรองเป็นของตัวเองใช่ไหม หากมีใครจะเพิ่มใบรับรองด้วยวิธีนี้เพียงแค่ Firefox จะสามารถใช้มันได้หรือไม่
Aiyion.Prime

ไม่สามารถใช้งานได้เลยคุณยังต้องเพิ่มลงในคอนเทนเนอร์สากลของระบบปฏิบัติการมิฉะนั้นจะอยู่ในคอนเทนเนอร์ Firefox เท่านั้น
arc_lupus

1

จากที่นี่ :

การติดตั้งใบรับรอง

คุณสามารถติดตั้งไฟล์คีย์ example.key และไฟล์ใบรับรอง example.crt หรือไฟล์ใบรับรองที่ออกโดย CA ของคุณโดยการเรียกใช้คำสั่งต่อไปนี้ที่พรอมต์เทอร์มินัล:

sudo cp example.crt /etc/ssl/certs
sudo cp example.key /etc/ssl/private

ตอนนี้เพียงกำหนดค่าแอปพลิเคชันใด ๆ ด้วยความสามารถในการใช้การเข้ารหัสคีย์สาธารณะเพื่อใช้ใบรับรองและไฟล์คีย์ ตัวอย่างเช่น Apache สามารถให้ HTTPS, Dovecot สามารถให้ IMAPS และ POP3S เป็นต้น


ควรอ่านอย่างใกล้ชิด ... ดูเหมือนว่าไม่ใช่ใบรับรองรูท หน้านั้นที่ฉันเชื่อมโยงไว้มีข้อมูลเกี่ยวกับใบรับรองหลักที่อาจมีประโยชน์
jat255

1
ฉันไม่มีกุญแจสาธารณะและกุญแจส่วนตัวฉันเพิ่งมี. crt ดังนั้นน่าเสียดายที่คำสั่งเหล่านั้นดูเหมือนจะไม่มีผล
Sparky1

0

ในการเพิ่มใบรับรอง Root CA ใน FireFox เป็นเรื่องง่ายมาก ๆ เพียงแค่เปิดการตั้งค่าไปที่ "ความเป็นส่วนตัวและความปลอดภัย" เลื่อนลงไปที่ "ใบรับรอง" และคลิก "ดูใบรับรอง ... " คุณสามารถคลิกที่ "นำเข้าใบรับรอง" ที่นี่ ชี้ไปที่รูท CA ของคุณ (.pem) และตกลง นั่นคือคนทั้งหมด


0

นี่คือขั้นตอนง่าย ๆ :

  1. ติดตั้งใบรับรอง CA เพื่ออนุญาตแอปพลิเคชันที่ใช้ SSL เพื่อตรวจสอบความถูกต้องของการเชื่อมต่อ SSL:

    sudo apt-get install ca-certificates
    
  2. คัดลอกไฟล์ใบรับรอง ( crtหรือ.cer ) ลงใน/usr/local/share/ca-certificates/โฟลเดอร์เช่น:

    sudo cp file.crt /usr/local/share/ca-certificates/
    

    สำหรับไฟล์ PEM ดู: แปลง .pem เพื่อ .crt และ .key

    เป็นทางเลือกถ้าใช้ Charles proxy คำสั่งนี้สามารถทำงานได้:

    curl -L chls.pro/ssl | sudo tee /usr/local/share/ca-certificates/charles.crt
    
  3. อัปเดตใบรับรอง:

    sudo update-ca-certificates
    

    คำสั่งจะอัปเดต/etc/ssl/certsไดเรกทอรีเพื่อเก็บใบรับรอง SSL และสร้างca-certificates.crtไฟล์ (รายการใบรับรองไฟล์เดียวที่ต่อกัน)

    หมายเหตุ: อย่าเพิ่มใบรับรองด้วยตนเอง (ตามที่แนะนำไว้ที่นี่ ) เนื่องจากจะไม่คงอยู่และจะถูกลบออก

หมายเหตุ: หากคุณใช้งานเป็นrootคุณสามารถวางsudoคำสั่งจากด้านบน


0

ความกระจ่างแจ้งระหว่างupdate-ca-certificatesและdpkg-reconfigure ca-certificatesกับเหตุผลว่าทำไมงานหนึ่งถึงอีกงานไม่ได้ !!

update-ca-certificatesหรือsudo update-ca-certificates จะใช้งาน /etc/ca-certificates.confได้ก็ต่อเมื่อได้รับการอัพเดต

/etc/ca-certificate.conf อัปเดตเฉพาะเมื่อคุณเรียกใช้ dpkg-reconfigure ca-certificatesซึ่งอัปเดตชื่อใบรับรองที่จะนำเข้า/etc/ca-certificates.conf

นี่คือที่ระบุไว้ในส่วนหัวของ/etc/ca-certificates.confไฟล์:

# This file lists certificates that you wish to use or to ignore to be
# installed in /etc/ssl/certs.
# update-ca-certificates(8) will update /etc/ssl/certs by reading this file.
#
# This is autogenerated by dpkg-reconfigure ca-certificates.  <=======
# Certificates should be installed under /usr/share/ca-certificates
# and files with extension '.crt' is recognized as available certs.
#
# line begins with # is comment.
# line begins with ! is certificate filename to be deselected.
#
mozilla/ACCVRAIZ1.crt
mozilla/AC_RAIZ_FNMT-RCM.crt
mozilla/Actalis_Authentication_Root_CA.crt
mozilla/AddTrust_External_Root.crt
...

อย่างที่คุณเห็นรูปแบบใน/etc/ca-certificates.confคือ<folder name>/<.crt name>

ดังนั้นในการใช้งานupdate-ca-certificatesหรือsudo update-ca-certificatesคุณสามารถทำสิ่งต่อไปนี้เพื่อนำเข้า. crt:

  1. สร้างไดเรกทอรีสำหรับใบรับรอง CA เพิ่มเติมใน / usr / share / ca-certificate:

    sudo mkdir /usr/share/ca-certificates/extra

  2. คัดลอกไฟล์. crt ไปยังไดเรกทอรีนี้:

    sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt

  3. ต่อท้ายบรรทัดเพื่อ/etc/ca-certificates.confใช้<folder name>/<.crt name>:

    echo "extra/foo.crt" >> /etc/ca-certificate.conf

  4. อัพเดต certs แบบไม่โต้ตอบกับ sudo update-ca-certificate

    sudo update-ca-certificates

    ... Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.

มีความสุข!

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