Score:0

บันทึกใบรับรอง ssl ที่ apache ใช้สำหรับการเชื่อมต่อ SSL แต่ละครั้ง เพื่อเพิ่มประสิทธิภาพการบันทึกและการดีบัก

ธง bg

ฉันมีเว็บเซิร์ฟเวอร์ apache พร้อมใบรับรอง mod_ssl & SSL จาก letsencrypt ใบรับรอง รายงานว่าใช้ได้และไม่หมดอายุ รายงานที่แตกต่างกันเล็กน้อย (จากผู้ใช้จำนวนมากของฉัน) ที่พวกเขาได้รับใบรับรอง SSL ที่ไม่ถูกต้อง/หมดอายุจากเซิร์ฟเวอร์ (และฉันได้เห็นผลลัพธ์จาก ว้าว จากพวกเขาเพื่อพิสูจน์ว่า)

เพื่อแก้ปัญหานี้ ฉันต้องการบันทึกรายละเอียดมากมายของการเชื่อมต่อ SSL แต่ละครั้ง ฉันต้องการบันทึก IP ระยะไกลสำหรับการเชื่อมต่อ SSL แต่ละครั้ง และรายละเอียดเกี่ยวกับการเชื่อมต่อ SSL (เช่น โปรโตคอล) ไคลเอ็นต์ระบุค่า SNI (การระบุชื่อเซิร์ฟเวอร์) จากนั้นใช้ใบรับรอง/เชน/คีย์ SSL ใดบนเซิร์ฟเวอร์ . ฉันต้องการ

กับ ErrorLog ssl:traceN (สำหรับต่างๆ เอ็น) ฉันสามารถรับรายละเอียดเหล่านี้ได้บางส่วน แต่ฉันไม่เห็นใบรับรอง SSL ที่เซิร์ฟเวอร์ใช้สำหรับการเชื่อมต่อแต่ละครั้ง ฉันจะทำสิ่งนี้ได้อย่างไร

Nikita Kipriyanov avatar
za flag
`wget` ไม่ใช่วิธีที่ดีที่สุดในการตรวจสอบใบรับรอง เรียนรู้วิธีใช้เครื่องมือ `openssl s_client` ซึ่งออกแบบมาเพื่อวัตถุประสงค์ในการดีบัก SSL/TLS เท่านั้น
bg flag
ฉันไม่ได้ใช้ `wget` เพื่อตรวจสอบใบรับรอง SSL ฉันใช้ `openssl s_client` สำหรับการตรวจสอบ อย่างไรก็ตาม ผู้ใช้ของฉันบางคนใช้ `wget` เพื่อดาวน์โหลดไฟล์ และพวกเขาพบข้อผิดพลาดนี้และส่งอีเมลถึงผลลัพธ์ของเทอร์มินัลให้ฉัน
Nikita Kipriyanov avatar
za flag
เป็นไปได้ว่า `wget` ของพวกเขาใช้ฐานข้อมูล `ca_certificates` เก่าซึ่งไม่รวมใบรับรองหลัก Let's Encrypt ใหม่หรือใบรับรองอื่น ๆ นั่นเป็นเหตุผลที่ wget ของพวกเขาบ่น หากเป็นกรณีนี้ ทำอะไรไม่ได้ ไม่ควรทำอะไร เป็นฝ่ายต้องแก้ไข
Score:1
ธง za

HTTPD ของ Apache mod_ssl ตั้งค่าตัวแปรสภาพแวดล้อมต่างๆ ซึ่งบางตัวสามารถใช้เพื่อระบุใบรับรองเซิร์ฟเวอร์ ตัวอย่างเช่นมี SSL_SERVER_CERT (ใบรับรองที่เข้ารหัส PEM ฉบับสมบูรณ์) SSL_SERVER_S_DN (DN ของเรื่อง), SSL_SERVER_M_SERIAL (หมายเลขซีเรียลใบรับรอง)

คุณสามารถใช้สิ่งเหล่านี้ในการกำหนดค่าการบันทึก:

บันทึกที่กำหนดเอง "logs/ssl_request_log" "... %{SSL_SERVER_S_DN}x ..."

อ่าน คู่มือ mod_ssl สำหรับรายละเอียด

Score:1
ธง in

mod_ssl ส่งออกตัวแปรสภาพแวดล้อมจำนวนมาก (ดูรายการที่นี่) ซึ่งสามารถใช้บันทึกข้อมูลเกี่ยวกับใบรับรองได้ เช่น ใน รูปแบบบันทึก คำสั่งเช่นนี้:

LogFormat "cert_CN='%{SSL_SERVER_S_DN_CN}e', cert_expires='%{SSL_SERVER_V_END}e', vhost='%{Host}i', client='%h'" ssl_combined

อย่างไรก็ตาม ก่อนที่คุณจะเริ่มเข้าสู่ระบบ โปรดตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบแล้ว บทความนี้ เกี่ยวกับการหมดอายุใบรับรอง DST Root CA X3เป็นผู้ลงนาม CA รูทของ Let's Encrypt และหมดอายุในเดือนกันยายน อย่างไรก็ตาม CA รูทของ Let's Encrypt นั้นได้รับการยอมรับว่าเป็น CA ที่เชื่อถือได้ในแทบทุกระบบ ด้วยเหตุนี้ การหมดอายุจึงไม่ใช่ปัญหา และใบรับรองที่ออกให้จะยังคงใช้งานได้ต่อไป ยกเว้น สำหรับระบบเก่าที่ใช้ opensl รุ่น < 1.1.0 ซึ่งไม่หยุดการตรวจสอบเมื่อพบ CA ที่เชื่อถือได้ แต่ยืนยันที่จะตรวจสอบห่วงโซ่ทั้งหมด (และล้มเหลว)

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

bg flag
ใช่ ฉันสงสัยว่าการเปลี่ยนแปลงใบรับรอง Letsencrypt มีความเกี่ยวข้องที่นี่หรือไม่
Nikita Kipriyanov avatar
za flag
อีกครั้ง หากมีปัญหา openssl หรือ ca_certificates เก่าบนไคลเอนต์ คุณจะไม่สามารถดำเนินการใดๆ บนฝั่งเซิร์ฟเวอร์ได้ ให้ความรู้แก่ผู้ใช้ของคุณ อธิบายว่าเหตุใดการใช้ซอฟต์แวร์ที่ล้าสมัยจึงไม่ดี เหตุใดจึงจำเป็นต้องมีการอัปเดต
bg flag
ใช่ ฉันคิดว่ามันเป็นการเปลี่ยนแปลงของ LE แต่ฉันต้องการที่จะแน่ใจ 100%

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา