Score:0

รับรองความถูกต้องและข้อมูลจาก curl ไปยังแบ็กเอนด์ HAProxy ไม่ทำงานบน TLS Termination - แต่ใช้งานได้กับ TLS passthrough

ธง ru
ฟัง pki
    ผูก *:8884 ssl no-sslv3 crt ​​/HAPROXY.pem.ecdsa ตรวจสอบไฟล์ ca ที่จำเป็น /CA_CHAIN.pem
    โหมด http
    http-request add-header ประเภทเนื้อหา "application/pkcs10"
    http-request add-header Content-Transfer-Encoding "base64"
    http-request add-header Authorization "Basic somebase64encodedstring"
    default_backend pkis_1
    
แบ็กเอนด์ pkis_1
    โหมด http
    http-request add-header ประเภทเนื้อหา "application/pkcs10"
    http-request add-header Content-Transfer-Encoding "base64"
    http-request add-header Authorization "Basic somebase64encodedstring"
    เซิร์ฟเวอร์ pkis my.domain.com:443 ssl ยืนยันว่าไม่มี

การใช้การกำหนดค่าข้างต้นทำให้เราสามารถเรียกแบ็กเอนด์ได้สำเร็จจาก curl บนปลายทางหนึ่งๆ โดยใช้ใบรับรองเดียวกัน แต่เราถูกบล็อกบนปลายทางอื่นของเซิร์ฟเวอร์เดียวกันซึ่งต้องการการตรวจสอบสิทธิ์ขั้นพื้นฐาน

สาย curl คือ:

curl --cacert '$INITIAL_CACERT' --key '$INITIAL_DEVICE_KEY' --cert '$INITIAL_DEVICE_CERT' --user '$USER':'$PWD' --data @'$1'/'$KEY_NAME'-key.b64 -o '$1'/'$KEY_NAME'-cert-p7.b64 -H "Content-Type: application/pkcs10" -H "Content-Transfer-Encoding: base64" https://'$PKI_SERVER':'$PORT '/.well-known/est/'$2'/simpleenroll

มีวิธีการส่งต่อทุกอย่างจากคำสั่ง curl นี้ไปยังแบ็กเอนด์หรือไม่?

สิ่งที่แปลกคือ เมื่อเราลบ ssl auth ทั้งหมดและเปลี่ยนเป็นโหมด tcp เป็นพร็อกซีโปร่งใส การตรวจสอบสิทธิ์พื้นฐานจะทำงานได้!

Score:0
ธง ru

https://serversforhackers.com/c/using-ssl-certificates-with-haproxy

ดังที่บทความข้างต้นเขียนไว้ว่า

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

ซึ่งหมายความว่าเซิร์ฟเวอร์แอปพลิเคชันของคุณจะสูญเสียความสามารถในการรับส่วนหัว X-Forwarded-* ซึ่งอาจรวมถึงที่อยู่ IP พอร์ตและรูปแบบที่ใช้ของไคลเอ็นต์

ดังนั้น ฉันตระหนักดีว่าเป็นไปไม่ได้ที่จะเผยแพร่ส่วนหัวที่จำเป็นด้วยการสิ้นสุด TLS และนั่นเป็นสาเหตุที่คำขอทำงานเมื่อเราเล่นด้วยโหมด TLS-passthrough!

cn flag
SSL ถูกยกเลิกที่ไหน?
Eos Antigen avatar
ru flag
คุณอาจเห็นตัวอย่างคำถามของฉันในบรรทัดแรกฟัง...
Score:0
ธง cn

ฉันไม่สามารถเข้าใจการกำหนดค่า HAProxy ของคุณได้ทั้งหมด แต่ดูเหมือนว่าคุณกำลังฮาร์ดโค้ดส่วนหัวสำหรับแบ็กเอนด์ของคุณ ฉันจะเพิ่มส่วนหัว HTTP จาก curl แทน อย่าลืมประเภทเนื้อหา ข้อมูลการรับรองความถูกต้องพื้นฐานนั้นจะถูกส่งผ่านจากไคลเอนต์ เนื่องจากไม่ใช่คำขอทั้งหมดที่จะมีประเภทเนื้อหาหรือการรับรองความถูกต้องพื้นฐานเหมือนกัน ตรวจสอบคำตอบได้จาก ที่นี่ เกี่ยวกับวิธีการส่งข้อมูลการตรวจสอบสิทธิ์ขั้นพื้นฐานใน curl

Eos Antigen avatar
ru flag
ถูกต้องที่คุณพูด เราฮาร์ดโค้ดส่วนหัวเหล่านั้นเพราะเราคิดว่าไม่ได้ส่งต่อมาจากคำขอ >ปัญหาคือการตรวจสอบสิทธิ์ขั้นพื้นฐานไม่ทำงาน ดังนั้นเราจึงได้รับ 401 ที่แบ็กเอนด์ซึ่งเป็นเซิร์ฟเวอร์ Apache บางทีส่วนข้อมูลไม่ได้ถูกส่งผ่านอย่างถูกต้อง?
cn flag
คุณ Base64เข้ารหัสการรับรองความถูกต้องพื้นฐานหรือไม่ หากคุณเพิ่มเป็นส่วนหัวจาก curl 401 จะถูกส่งออกเมื่อข้อมูลประจำตัวพื้นฐานของคุณไม่ถูกต้อง ซึ่งหมายความว่าคุณไม่ได้ส่งอย่างถูกต้อง อีกอย่าง คุณควรเลิกใช้การพิสูจน์ตัวตนขั้นพื้นฐาน เพราะถือว่าเป็นการรักษาความปลอดภัยของผู้ไม่หวังดีในบริบทปัจจุบัน
Eos Antigen avatar
ru flag
จะตรวจสอบการเข้ารหัส base64 อีกครั้งเพราะอาจมีบางอย่างพลาดไป แต่การตรวจสอบสิทธิ์ขั้นพื้นฐานเป็นเพียงขั้นตอนการตรวจสอบสิทธิ์พิเศษที่อยู่ด้านหลังใบรับรองหลัก .... ขอบคุณ...

โพสต์คำตอบ

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