วิธีการนี้จะสาธิตวิธีการติดตั้ง SSL /TLS ใบรับรองบน macOS 10.14 Mojave มีให้สองสถานการณ์:
- ติดตั้ง SSL /TLS ใบรับรองสำหรับการใช้งานทั่วทั้งระบบใน Keychain Access
- ติดตั้ง SSL /TLS ใบรับรองสำหรับใช้กับเซิร์ฟเวอร์ Apache ที่มาพร้อมกับ macOS
ขึ้นอยู่กับสถานการณ์ของคุณคุณอาจต้องการทำสิ่งใดสิ่งหนึ่งหรือทั้งสองอย่างนี้ ตัวอย่างเช่นหากคุณกำลังตั้งค่าสภาพแวดล้อมการพัฒนาเฉพาะที่และต้องการให้ใบรับรองพร้อมใช้งานสำหรับทั้งซอฟต์แวร์ Apache และไคลเอนต์เช่นเว็บเบราว์เซอร์คุณจะต้องทำทั้งสองอย่าง ในทั้งสองกรณีเราจะเริ่มต้นด้วยการสมมติว่าคุณสร้างคำขอลงนามใบรับรอง (CSR) ใน Keychain Access ดังแสดงในของเรา วิธีการ. ในกรณีนี้คีย์ส่วนตัวของคุณจะได้รับการติดตั้งในการเข้าถึงพวงกุญแจแล้ว นอกจากนี้เราจะถือว่าการตรวจสอบความถูกต้องเสร็จสมบูรณ์และใบรับรองของคุณพร้อมสำหรับการดาวน์โหลด สำหรับข้อมูลเกี่ยวกับการสั่งซื้อและการดึงใบรับรองโปรดดูวิธีการของเรา การสั่งซื้อและการดึง SSL /TLS ใบรับรอง.
ขั้นตอนแรก
-
ดาวน์โหลดชุดใบรับรองจากบัญชีผู้ใช้ของคุณโดยใช้ไฟล์ อาปาเช่ ลิ้งค์ดาวน์โหลด.
-
แตกไฟล์ ควรมีใบรับรองของคุณ (ชื่อไฟล์จะขึ้นอยู่กับชื่อสามัญในไฟล์ CSR และจบลงด้วย
.crt
) และชุดข้อมูล CA (ca-bundle-client.crt
).
การติดตั้งใบรับรองในการเข้าถึงพวงกุญแจ
-
จุดเปิด แอป Keychain, ตั้งอยู่ที่ / Applications / Utilities.
-
เลือกพวงกุญแจที่ติดตั้งคู่กุญแจของคุณ ในกรณีนี้เป็นไฟล์ System พวงกุญแจ
-
นำทางไปยัง ไฟล์> นำเข้ารายการ ...
-
ไปที่ใบรับรองใหม่ของคุณเลือกใบรับรองแล้วคลิก จุดเปิด.
-
ป้อนรหัสผ่านของคุณแล้วคลิก ปรับเปลี่ยนพวงกุญแจ.
- ทำซ้ำขั้นตอนที่ 3-5 ด้านบนด้วย
ca-bundle-client.crt
เพื่อติดตั้งห่วงโซ่ใบรับรองระดับกลาง -
คุณสามารถยืนยันว่าได้ติดตั้งใบรับรองแล้วโดยเลือก ใบรับรอง จากเมนูแถบด้านข้างซ้าย
ติดตั้งใบรับรองสำหรับ Apache
-
ถ้าคุณ สร้างของคุณ CSR ใน Keychain Accessคุณจะต้องส่งออกคีย์ส่วนตัวของคุณเป็นไฟล์เพื่อใช้กับ Apache เปิด แอป Keychain, ตั้งอยู่ที่ / Applications / Utilities. (ถ้าคุณ สร้างแล้ว CSR ด้วย OpenSSL หรือด้วย SSL.com CSR ผู้จัดการ คุณสามารถข้ามไปที่ขั้นตอนที่ 9 ด้านล่าง)
-
ใช้เมนูแถบด้านข้างทางซ้ายเพื่อ จำกัด ตัวเลือกของคุณค้นหาและเลือกคีย์ส่วนตัวที่คุณต้องการส่งออก ในกรณีนี้เราจะส่งออกคีย์ส่วนตัวสำหรับ
www.lunchinhouston.com
ตั้งอยู่ในSystem
พวงกุญแจ -
Choose ไฟล์> ส่งออกรายการ ... จากเมนู
-
ตรวจสอบให้แน่ใจว่ารูปแบบไฟล์ที่เลือกคือ การแลกเปลี่ยนข้อมูลส่วนบุคคล (.p12) และบันทึกไฟล์ไปยังสถานที่ที่คุณจะสามารถค้นหาได้
-
ป้อนรหัสผ่านของคุณเพื่อปลดล็อกพวงกุญแจ (หากได้รับแจ้ง) จากนั้นสร้างรหัสผ่านสำหรับไฟล์. p12 แล้วคลิก OK.
-
จุดเปิด
Terminal.app
ตั้งอยู่ใน/Applications/Utilities/
โฟลเดอร์และนำทางไปยังโฟลเดอร์ที่คุณจัดเก็บไฟล์. p12 จากขั้นตอนที่ 5 -
ใช้
openssl
เพื่อแยกคีย์ส่วนตัวจากไฟล์. p12 (หมายเหตุ แทนที่ชื่อไฟล์ที่แสดงที่นี่สำหรับชื่อไฟล์. p12 ของคุณและชื่อไฟล์ที่คุณต้องการใช้สำหรับคีย์) คุณจะได้รับแจ้งก่อนให้ป้อนรหัสผ่านที่คุณสร้างในขั้นตอนที่ 5 จากนั้นให้แจ้งให้สร้างและตรวจสอบรหัสผ่านเพื่อป้องกันรหัสส่วนตัว$ openssl pkcs12 -nocerts -in Certificates.p12 - ออก privkey.key
-
ถัดไปคุณจะต้องถอดรหัสคีย์ส่วนตัว ป้อนคำสั่งต่อไปนี้แทนที่ชื่อของไฟล์อินพุตและเอาต์พุตตามต้องการ (ใช้ชื่อเดียวกับที่แสดงด้านล่างจะเขียนทับไฟล์ที่เข้ารหัส) คุณจะได้รับแจ้งให้ป้อนรหัสผ่านที่คุณสร้างไว้ในขั้นตอนที่ 7
$openssl rsa -ใน privkey.key -ออก privkey.key
- ใส่คีย์ส่วนตัวใบรับรองและไฟล์บันเดิลกลางในไดเร็กทอรีที่ปลอดภัยซึ่ง Apache สามารถอ่านได้ สำหรับวิธีการนี้เราจะใช้
/private/etc/apache2/
. ขึ้นอยู่กับตำแหน่งที่เลือกคุณอาจต้องใช้sudo
เพื่อย้ายไฟล์ -
เปิดไฟล์กำหนดค่าหลักของ Apache
httpd.conf
ในตัวแก้ไขข้อความ ในการติดตั้ง Apache มาตรฐาน Mojave ไฟล์นี้จะอยู่ใน/private/etc/apache2/
ไดเรกทอรี เพื่อเปิดไฟล์สำหรับแก้ไขด้วยnano
รันคำสั่งต่อไปนี้:$ sudo นาโน /private/etc/apache2/httpd.conf
หมายเหตุ เพราะคุณกำลังใช้sudo
หากต้องการถือว่ามีสิทธิ์เพียงพอที่จะแก้ไขไฟล์นี้ชั่วคราวคุณจะได้รับแจ้งให้ป้อนรหัสผ่านก่อนดำเนินการต่อ -
ค้นหาบรรทัดเหล่านี้ใน
httpd.conf
และ uncomment พวกเขาโดยการลบ#
อักขระที่จุดเริ่มต้นของแต่ละบรรทัด:LoadModule socache_shmcb_module libexec / apache2 / mod_socache_shmcb.so ... ... / โหลดส่วนตัว / sache_module libslec / apache2 / mod_ssl.so ... รวม /private/etc/apache2/extra/httpd-vhosts.conf รวม ... / / ส่วนตัว เสริม / httpd-ssl.conf
หมายเหตุ หากคุณกำลังใช้nano
เพื่อแก้ไขhttpd.conf
คุณสามารถค้นหาสตริงข้อความด้วยCtrl-W
- ลด
httpd.conf
และออกจากโปรแกรมแก้ไขข้อความ (Ctrl-O
, ติดตามโดยCtrl-X
innano
). -
ถัดไปเปิด
httpd-ssl.conf
สำหรับการแก้ไข:$ sudo นาโน /private/etc/apache2/extra/httpd-ssl.conf
-
มองหาบรรทัดต่อไปนี้และตรวจสอบให้แน่ใจว่า Apache กำลังฟังอยู่บนพอร์ต
443
. หากตั้งค่าพอร์ตไว้เป็น8443
หรือค่าอื่น ๆ ให้เปลี่ยนเป็น443
.# # เมื่อเราจัดหา SSL เราต้องฟัง # พอร์ต HTTP มาตรฐาน (ดูด้านบน) และไปยังพอร์ต HTTPS # Listen 443
- ค้นหาบรรทัดที่ขึ้นต้นด้วยสตริง
<VirtualHost _default_:
(หมายเลขพอร์ตอาจแตกต่างกัน) และใส่ความคิดเห็นหรือลบ ทั้งหมด เส้นระหว่างนั้นกับ</virtualhost>
. - ลด
httpd-ssl.conf
และออกจากโปรแกรมแก้ไขข้อความ -
ถัดไปเปิด
httpd-vhosts.conf
สำหรับการแก้ไข:$ sudo นาโน /private/etc/apache2/extra/httpd-vhosts.conf
-
สร้างรายการ VirtualHost สำหรับไซต์ที่คุณต้องการป้องกัน (ใช้ค่าจริงสำหรับเว็บไซต์และเซิร์ฟเวอร์ของคุณแทนที่จะเป็นตัวยึดตำแหน่งที่แสดงที่นี่) จากนั้นบันทึกไฟล์และออกจากโปรแกรมแก้ไขข้อความ
DocumentRoot "/PATH/TO/WEBSITE" ชื่อเซิร์ฟเวอร์ SERVERNAME SSLEngine บน SSLCertificateFile "https://ee443cc2f1.rocketcdn.me/private/etc/apache8/server.crt" SSLCertificateKeyFile "https://ee2cc2f1.rocketcdn.me/private/etc /apache8/server.key" SSLCertificateChainFile "https://ee2cc2f1.rocketcdn.me/private/etc/apache8/ca-bundle-client.crt"
-
ตรวจสอบการกำหนดค่า Apache ของคุณด้วยคำสั่งต่อไปนี้:
$ sudo apachectl กำหนดค่าการทดสอบ
-
หากทุกอย่างเรียบร้อยให้รีสตาร์ท Apache:
$ sudo apachectl รีสตาร์ท
-
ถ้าทุกอย่างเป็นไปอย่างถูกต้องแสดงว่าเสร็จแล้ว! คุณควรจะสามารถไปที่เว็บไซต์ HTTPS ของคุณในเว็บเบราว์เซอร์