Score:1

อัพเกรด openssl | ไม่ผ่านการตรวจสอบใบรับรอง

ธง kr

ฉันกำลังทำงานกับเครื่อง CentOS7 และฉันกำลังพยายามอัปเกรด opensl เวอร์ชัน 1.0.2k -> 1.1.0l ของเครื่องของฉัน ดูเหมือนว่ากระบวนการจับมือกับเซิร์ฟเวอร์ของฉัน (ซึ่งไม่มีการเปลี่ยนแปลง) ล้มเหลวหลังจากการอัปเกรด และฉันกำลังพยายามหาสาเหตุ

เรียกใช้คำสั่งต่อไปนี้กับทั้งรุ่น openssl:

opensl s_client -showcerts -เชื่อมต่อเซิร์ฟเวอร์:พอร์ต

ส่งผลให้เกิดความล้มเหลวกับอันที่ใหม่กว่า (หากฉันให้การตรวจสอบ -CAfile ใช้งานได้กับทั้งสองอย่าง) ผลต่างของผลลัพธ์:

เก่า 1.0.2k (จับมือสำเร็จ):

คีย์อุณหภูมิเซิร์ฟเวอร์: ECDH, P-256, 256 บิต ใหม่, TLSv1/SSLv3, การเข้ารหัสคือ ECDHE-RSA-AES128-GCM-SHA256 ใหม่ 1.1.0l (จับมือล้มเหลว):

คีย์อุณหภูมิเซิร์ฟเวอร์: X25519, 253 บิต ใหม่, TLSv1.2, Cipher คือ ECDHE-RSA-AES128-GCM-SHA256 ตรวจสอบรหัสส่งคืน: 20 (ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น) ฉันจะขอบคุณที่ช่วยให้เข้าใจความแตกต่างและทำไมพวกเขาถึงแตกต่างกัน

fyi ฉันเริ่มคุกคามที่คล้ายกันที่นี่: https://stackoverflow.com/questions/68763253/openssl-upgrade-fail-validating-certificate?noredirect=1#comment121583146_68763253 ไม่มีโชคมากนัก

ขอบคุณ :)

us flag
คุณทำกระบวนการอัปเกรดอย่างไร
Guy Tabak avatar
kr flag
ฉันรวบรวม opensl จากซอร์สโค้ด ไม่สามารถรับ yum เพื่อติดตั้งเวอร์ชันเฉพาะนั้นได้ ความแตกต่างที่สำคัญประการหนึ่งที่ฉันเห็นในการทำงานและไม่ทำงาน: เส้นทางการค้นหาใบรับรองเวอร์ชันของ openssl ที่ใช้งานได้คือ /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem เส้นทางการค้นหาใบรับรองเวอร์ชันของ openssl ที่ล้มเหลวคือ /var/ssl/cert.pem ทั้งคู่มี SSL_CERT_DIR env เหมือนกันคือ: /etc/pki/tls/certs ดังนั้นฉันจึงสงสัยว่าทำไมเวอร์ชันของ openssl ใหม่ถึงดูที่ /var/ssl
us flag
`SSL_CERT_DIR` ดูเหมือนจะแตกต่างจากเส้นทางรูทของ CA โดยดูที่ความแตกต่างในเส้นทางที่คุณแสดง
Guy Tabak avatar
kr flag
คุณหมายถึงอะไร SSL_CERT_DIR "ระบุตำแหน่งของผู้ออกใบรับรองที่เชื่อถือได้ (CA) ที่พบในรูปแบบ OpenSSL นี่คือตัวแปรสภาพแวดล้อม OpenSSL"
Score:1
ธง us

ที่ Centos 7 คุณสามารถแก้ไขปัญหานี้ได้ด้วยคำสั่งต่อไปนี้เช่นกัน:

#เตรียมรวบรวม
yum ติดตั้ง https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
yum groupinstall -y "เครื่องมือการพัฒนา" "ไลบรารีการพัฒนา"

#สร้างจากต้นทาง
ซีดี /usr/src
# --no-check-certificate เนื่องจากปัญหาดังกล่าว ระบบของคุณจะไม่ตรวจสอบใบรับรอง letsencrypt ที่ openssl.org จนกว่าจะอัปเดตเสร็จ
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar -zxf opensl-1.1.1l.tar.gz
ซีดีopenssl-1.1.1l
./config
ทำ
ทำการติดตั้ง

yum ติดตั้งใบรับรอง ca -y 
Score:0
ธง kr

สำหรับการอ้างอิงในอนาคต เพิ่มวิธีแก้ปัญหาที่นี่

เมื่อเริ่มทำงานกับ openssl เวอร์ชัน > 1.0.2k บน เครื่อง centos7 ดูเหมือนว่าจะมีการเปลี่ยนแปลงพฤติกรรมในเส้นทางการแก้ปัญหารูท

openssl ผ่านรายการตำแหน่งของที่เก็บใบรับรองที่กำหนดไว้ล่วงหน้า อย่างไรก็ตาม เมื่อพบไฟล์ cert.pem ใน /val/ssl ก็จะทดสอบและจะล้มเหลวหากไม่สามารถตรวจสอบความถูกต้องของรีโมตของคุณได้

ใบรับรอง "ดี" ของฉันอยู่ใน /etc/ssl และเนื่องจากเป็นเครื่องของลูกค้า ฉันจึงไม่สามารถขอให้เขาลบไฟล์ /var/ssl ได้

วิธีแก้ไขของฉันคือเลือก cert.pem ที่ถูกต้องโดยทางโปรแกรมในกรณีที่ openssl ล้มเหลว (โดยไม่แก้ไขเวอร์ชันของ openssl ของเครื่อง ซึ่งถูกห้าม)

โพสต์คำตอบ

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