Score:1

Apache 2.4: ต้องการใบรับรองไคลเอ็นต์สำหรับเมธอดที่ไม่ใช่ GET เท่านั้น

ธง br

เรามีบริการภายในที่ทำงานบน HTTP โดยมีอินสแตนซ์ Apache 2.4 (Debian Bullseye) อยู่ข้างหน้าเป็นพร็อกซีสำหรับ HTTPS Apache และ HTTPS พร้อมใช้งานแล้ว แต่มีข้อกำหนดเพิ่มเติมสำหรับใบรับรองไคลเอ็นต์ โดยเฉพาะคำขอ GET และ HEAD อาจดำเนินการโดยไม่ระบุชื่อ แต่วิธีอื่นๆ ทั้งหมดต้องแสดงใบรับรองไคลเอ็นต์ที่ถูกต้องซึ่งตรงกับเงื่อนไขบางประการ

ซอฟต์แวร์ที่เราสร้างมีเป้าหมายที่ IIS ดังนั้น Apache จึงเป็นบางอย่างที่ไม่ทราบจำนวนสำหรับเรา ความพยายามของเราในการปรับการกำหนดค่าที่เราได้รับมามีส่วนไซต์ของการกำหนดค่า (ละเว้นคำสั่งเส้นทางไฟล์ใบรับรอง) เป็น:

SSLVerifyClient เป็นทางเลือก
SSL ตรวจสอบความลึก 10

ProxyPass /internal http://<internalIP>:/internal
ProxyPassReverse /internal http://<internalIP>:/internal
SSLOptions +StdEnvVars

<สถานที่ /ภายใน>
  คำสั่งปฏิเสธอนุญาต
  อนุญาตจากทั้งหมด

  <ขีดจำกัดยกเว้น GET>
    SSLRequire ( %{SSL_CLIENT_S_DN_O} eq "(org)" และ %{SSL_CLIENT_S_DN_OU} eq "(unit)" and %{SSL_CLIENT_S_CN} eq "(name)" )
  </จำกัดยกเว้น>
</สถานที่>

เรายังไม่ได้ลองใช้กับใบรับรองไคลเอนต์ เช่น POST เพราะ GET ง่ายๆ https://<proxy>/internal ตอนนี้ล้มเหลวด้วยข้อความ 403 และ error.log:

AH02229: การเข้าถึงพร็อกซี:http://{internalIP}/internal ล้มเหลว เหตุผล: ไม่ปฏิบัติตามนิพจน์ข้อกำหนด SSL

เมื่อมองแวบแรกดูเหมือนว่า SSLRต้องการ มีการใช้เช็คกับ GET เช่นกัน ซึ่งตรงกันข้ามกับ <LimitExcept>.

มีชุดคำสั่งที่เราสามารถใช้เพื่อให้ได้พฤติกรรมที่ต้องการหรือไม่? (เป็นการดีที่จะย้ายออกจากสิ่งที่เลิกใช้แล้ว SSLRต้องการ เช่นกัน.)

Score:1
ธง in

คุณสามารถใช้ได้ mod_ssl ด้วยการตรวจสอบสิทธิ์ขั้นพื้นฐานเพื่ออนุญาตเฉพาะผู้ที่แสดงใบรับรองที่ถูกต้องเท่านั้น คุณต้องแก้ไข ขีด จำกัด ยกเว้น ส่วนนี้:

<LimitExcept GET>
    AuthType Basic
    AuthName "no-GET thingy"
    Require ssl-verify-client
</LimitExcept>

คุณสามารถใช้จำนวนและการรวมกันของ จำเป็นต้อง ดังนั้นหากคุณต้องการตรวจสอบคุณสมบัติใบรับรองด้วย คุณสามารถทำสิ่งนี้ได้:

<LimitExcept GET>
    AuthType Basic
    AuthName "no-GET thingy"
    <RequireAll>
        Require ssl-verify-client
        Require expr "'${SSL_CLIENT_S_DN_O}' == 'org'"
        Require expr "'${SSL_CLIENT_S_DN_OUT}' == 'theOU'"
        Require expr "'${SSL_CLIENT_S_DN_CN}' != 'notThisUser'"
    </RequireAll>
</LimitExcept>
T2PS avatar
br flag
สิ่งนี้ใช้ได้ในแง่ของการขอใบรับรอง มีวิธีรวมการตรวจสอบคุณสมบัติของใบรับรองด้วยหรือไม่
in flag
ฉันได้เพิ่มตัวอย่างการตรวจสอบคุณสมบัติของใบรับรองไคลเอ็นต์

โพสต์คำตอบ

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