Apache Bad Request“ ขนาดของส่วนหัวคำขอเกินขีด จำกัด ของเซิร์ฟเวอร์” ด้วย Kerberos SSO


9

ฉันตั้งค่า SSO สำหรับผู้ใช้ Active Directory ผ่านเว็บไซต์ที่ทำงานบน Apache (Apache2 บน SLES 11.1) และเมื่อทดสอบกับ Firefox ทุกอย่างก็ใช้ได้ดี แต่เมื่อฉันพยายามเปิดเว็บไซต์ใน Internet Explorer 8 (Windows 7) สิ่งที่ฉันได้รับคือ

"คำขอไม่ดี

เบราว์เซอร์ของคุณส่งคำขอว่าเซิร์ฟเวอร์นี้ไม่เข้าใจ

ขนาดของฟิลด์ส่วนหัวคำขอเกินขีด จำกัด เซิร์ฟเวอร์

การอนุญาต: เจรจา [สายยาวพิเศษ] "

vhost.cfg ของฉันมีลักษณะเช่นนี้:

<VirtualHost hostname:443>
  LimitRequestFieldSize 32760
  LimitRequestLine 32760
  LogLevel debug

  <Directory "/data/pwtool/sec-data/adbauth">
    AuthName "Please login with your AD-credentials (Windows Account)"
    AuthType Kerberos
    KrbMethodNegotiate on
    KrbAuthRealms REALM.TLD
    KrbServiceName HTTP/hostname
    Krb5Keytab /data/pwtool/conf/http_hostname.krb5.keytab
    KrbMethodK5Passwd on
    KrbLocalUserMapping on
    Order allow,deny
    Allow from all
  </Directory>

  <Directory "/data/pwtool/sec-data/adbauth">
    Require valid-user
  </Directory>

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /etc/apache2/ssl.crt/hostname-server.crt
    SSLCertificateKeyFile /etc/apache2/ssl.key/hostname-server.key
</VirtualHost>

ฉันยังตรวจสอบให้แน่ใจว่าคุกกี้ถูกลบและลองค่าที่น้อยกว่าสำหรับ LimitRequestFieldSize และ LimitRequestLine

อีกสิ่งที่ดูเหมือนแปลกสำหรับฉันคือแม้จะมีการดีบัก LogLevel ฉันจะไม่ได้รับบันทึกใด ๆ เกี่ยวกับเรื่องนี้ บรรทัดสุดท้ายของบันทึกคือ

ssl_engine_kernel.c(1879): OpenSSL: Write: SSL negotiation finished successfully

ใครบ้างมีความคิดเกี่ยวกับสิ่งนั้น


คุณสามารถค้นหาวิธีแก้ไขปัญหานี้ได้หรือไม่? ฉันมีอาการเหมือนกันทุกประการ
Gani Simsek

เฮ้ Gani ฉันไม่แน่ใจ ฉันเขียนฉัน "ไม่แน่ใจว่าถ้างาน" -solution นี่serverfault.com/a/426599/111458 โปรดแก้ตัวคำตอบสุดท้ายของฉัน หากคุณยังคงต้องแก้ปัญหาให้ลองคำตอบของฉันและให้ฉัน / เราทราบว่ามันทำงาน =)
Aurelin

คำตอบ:


7

ลำไส้ของฉันบอกว่าคุณมีโทเค็นความปลอดภัยขนาดใหญ่มากอาจเป็นเพราะผู้ใช้เป็นสมาชิกของกลุ่มจำนวนมาก การติดตั้ง AD Kerberos นั้นจะให้ Apache กับPrivilege Attribute Certificate (PAC) โดยค่าเริ่มต้น โครงสร้างนี้อาจมีขนาดใหญ่หากผู้ใช้เป็นสมาชิกของกลุ่มจำนวนมาก คุณสามารถใช้tokensz.exeเครื่องมือเพื่อดูขนาดโทเค็นของผู้ใช้

หากนี่เป็นปัญหาคุณสามารถแก้ไขแอตทริบิวต์ UserAccountControl ของบัญชีผู้ใช้เพื่อป้องกันไม่ให้ส่ง PAC

คุณอาจจะสามารถที่จะได้รับไปกับการปรับเปลี่ยนของคุณ/etc/krb5.confไฟล์อ้างอิง KDC kdc = tcp/kdc.name.hereเป็น ปัญหานี้อาจเกิดขึ้นได้หาก PAC ทำให้โทเค็นมีขนาดใหญ่เกินไปสำหรับ UDP ดาตาแกรม แต่การบังคับให้การสื่อสารกับ KDC ด้วย TCP เป็นวิธีแก้ปัญหาที่เป็นไปได้เช่นกัน

การเปลี่ยนค่านั้นกับผู้ใช้ 1,000 รายนั้นไม่ใช่เรื่องยากสำหรับผู้ดูแลระบบโฆษณาหากแก้ปัญหาของคุณได้


(เอ่อเจ้ากรรมลบความคิดเห็นโดยไม่ตั้งใจฉันยังคงนอนหลับอยู่ดูเหมือนว่า) ดีดังนั้นฉันอาจถามพวกเขาว่าพวกเขาจะเปลี่ยนที่ แต่ฉันสงสัยว่ามันเนื่องจากองค์กร โครงสร้าง. และไม่ใช่ว่าโครงการของฉันมีความสำคัญมากดังนั้น .. ฉันจะลองแก้ไข /etc/krb5.conf ก่อน .. ขอบคุณ Btw ความคิดใด ๆ ว่าทำไมปัญหานี้เกิดขึ้นเฉพาะใน IE แต่ไม่ใช่ใน Opera หรือ Firefox
Aurelin

ฉันพยายามแก้ไข /etc/krb5.conf แต่นั่นไม่สามารถแก้ไขได้เลย อีกสิ่งหนึ่งที่ฉันเพิ่งค้นพบก็คือลิงค์ของคุณจะอธิบายเฉพาะโซลูชันสำหรับเซิร์ฟเวอร์ Win2k3 แต่เราเรียกใช้ Win2k8 RC2 ฉันลืมที่จะพูดถึงว่าขอโทษ
Aurelin

อืม .. ฉันต้องบอกว่ามันแปลกไปหน่อย
Aurelin

2

ฉันมีข้อผิดพลาดนี้เกิดขึ้นในไซต์ Drupal 7 ใน Safari บน Mac และพบว่าการปิดหน้าต่างเบราว์เซอร์และล้างแคชของเบราว์เซอร์ออกจากเบราว์เซอร์เปิดเบราว์เซอร์สำรองข้อมูลและโหลดหน้าเว็บอีกครั้งเพื่อหยุดข้อผิดพลาดที่เกิดขึ้นเท่านั้น ครั้งนี้

เบราว์เซอร์ของคุณส่งคำขอที่เซิร์ฟเวอร์นี้ไม่เข้าใจ > ขนาดของฟิลด์ส่วนหัวคำขอเกินขีด จำกัด เซิร์ฟเวอร์ คุกกี้ / n


2
ฟังดูเหมือนโซลูชันของ "Microsoft" สำหรับฉัน: รีบูทและหวังว่าปัญหาจะหายไป
Colin 't Hart

1
@Colin โดยไม่คำนึงถึงวิธีการมากนี้อาจจะชอบ "ไมโครซอฟท์" คำตอบหลายครั้งที่เป็นว่าสิ่งที่จะต้อง เมื่อล้างแคชของเบราว์เซอร์เบราว์เซอร์จำนวนมากไม่สามารถล้างแคชในหน่วยความจำได้ดังนั้นจึงจำเป็นต้องรีสตาร์ทเบราว์เซอร์ มันใช้กับ Firefox, Chrome และ Camino เวอร์ชัน Mac อย่างแน่นอน ฉันไม่เคยใช้ Safari ดังนั้นฉันจึงไม่สามารถแสดงความคิดเห็นได้
John Gardeniers

1

ฉันพบวิธีแก้ไขปัญหาอื่นแล้ว แต่ฉันไม่แน่ใจว่าใช้งานได้จริงหรือไม่ Apache Docs ระบุว่าสำหรับแพ็คเกจใหญ่ฉันจะต้องตั้งค่า LimitRequestFieldSize และ / หรือ LimitRequestLine

สิ่งคือถ้าคุณต้องการตั้งค่า LimitRequestLine เป็นอะไรที่สูงกว่า 8KB คุณจะต้องแก้ไขซอร์สและคอมไพล์ Apache ใหม่เนื่องจาก 8KB เป็น maxSize คงที่ ( http://httpd.apache.org/docs/) 2.2 / mod / core.html # limitrequestline )

ฉันไม่แน่ใจว่าวิธีนี้ใช้งานได้หรือไม่เพราะฉันติดตั้ง apache ใหม่จากที่เก็บข้อมูลของเราบนเซิร์ฟเวอร์ตัวที่สองในภายหลัง ดูเหมือนว่านี่เป็นรุ่นแพคเกจอื่นเนื่องจากปัญหาไม่ได้เกิดขึ้นที่นั่น


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.