Điểm:1

Apache 2.4: Chỉ yêu cầu chứng chỉ ứng dụng khách cho các phương thức không NHẬN

lá cờ br

Chúng tôi có một dịch vụ nội bộ chạy trên HTTP với một phiên bản Apache 2.4 (Debian Bullseye) được đặt trước dịch vụ này làm proxy cho HTTPS. Apache và HTTPS đang hoạt động, nhưng một yêu cầu bổ sung dành cho chứng chỉ ứng dụng khách -- cụ thể, các yêu cầu GET và HEAD có thể tiến hành ẩn danh, nhưng tất cả các phương thức khác phải xuất trình chứng chỉ ứng dụng khách hợp lệ phù hợp với các điều kiện nhất định.

Phần mềm chúng tôi xây dựng nhắm mục tiêu IIS, vì vậy Apache là một thứ gì đó không xác định đối với chúng tôi (người triển khai ban đầu đã rời đi). Những nỗ lực của chúng tôi để điều chỉnh cấu hình mà chúng tôi đã kế thừa có phần trang web của cấu hình (bỏ qua chỉ thị đường dẫn tệp chứng chỉ) là:

SSLVerifyClient tùy chọn
SSLVerifyDepth 10

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

<Vị trí /nội bộ>
  Lệnh từ chối, cho phép
  cho phép từ tất cả

  <Giới hạnNgoại trừ NHẬN>
    SSLRequire ( %{SSL_CLIENT_S_DN_O} eq "(org)" và %{SSL_CLIENT_S_DN_OU} eq "(unit)" và %{SSL_CLIENT_S_CN} eq "(name)" )
  </LimitException>
</Vị trí>

Chúng tôi chưa thử điều này với chứng chỉ ứng dụng khách chẳng hạn. POST vì một GET đơn giản https://<proxy>/internal hiện không thành công với thông báo 403 và error.log:

AH02229: truy cập vào proxy:http://{internalIP}/internal không thành công, lý do: Biểu thức yêu cầu SSL không được đáp ứng

Thoạt nhìn, điều này trông giống như SSLYêu cầu kiểm tra cũng đang được áp dụng cho GET, trái ngược với <LimitExcept>.

Có sự kết hợp của các lệnh mà chúng ta có thể sử dụng để có được hành vi mong muốn không? (Lý tưởng nhất là một trong số đó di chuyển ra khỏi biểu tượng rõ ràng hiện không được chấp nhận SSLYêu cầu cũng.)

Điểm:1
lá cờ in

Bạn có thể dùng mod_ssl với xác thực cơ bản để chỉ cho phép những người đã xuất trình chứng chỉ hợp lệ. Bạn cần sửa đổi Giới hạn loại trừ một phần như thế này:

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

Bạn có thể sử dụng bất kỳ số lượng và sự kết hợp của Yêu cầu báo cáo, vì vậy nếu bạn cũng muốn kiểm tra các thuộc tính của chứng chỉ, bạn có thể thực hiện như sau:

<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
lá cờ br
Điều này hoạt động theo yêu cầu chứng chỉ, có cách nào bao gồm cả việc kiểm tra các thuộc tính của chứng chỉ không?
lá cờ in
Tôi đã thêm một ví dụ về kiểm tra các thuộc tính chứng chỉ ứng dụng khách.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.