Điểm:0

Apache không sử dụng cấu hình chỉ thị SSLProtocol & SSLCipherSuite

lá cờ ne

Tôi đang cố thiết lập HTTPS trong máy chủ web của mình. tôi gặp lỗi Mã lỗi: SSL_ERROR_NO_CYPHER_OVERLAP trong firefox và ERR_SSL_VERSION_OR_CIPHER_MISMATCH bằng crôm. Tôi đã tra cứu và thấy rằng giao thức SSL hoặc mật mã của tôi không được hỗ trợ. Kiểm tra trong ssllab (https://www.ssllabs.com/ssltest/) dẫn đếnKhông hỗ trợ giao thức bảo mật. Bài kiểm tra TLS của GeekFlare (https://gf.dev/tls-test) nói rằng không có giao thức TLS nào được bật. Tôi cũng đã thử nghiệm bằng cách sử dụng nmap --script ssl-enum-ciphers -p 443 mydomain.com và nhận được kết quả này

Bắt đầu từ Nmap 7.91 ( https://nmap.org ) lúc 2021-11-09 11:23 WIB
Báo cáo quét Nmap cho mydomain.in-addr.arpa (mydomain)
Máy chủ đang hoạt động (độ trễ 0,0079 giây).
DỊCH VỤ NHÀ NƯỚC CẢNG
443/tcp mở https
| ssl-enum-mật mã: 
| TLSv1.0: 
| mật mã: 
| TLS_DH_anon_WITH_AES_256_CBC_SHA - F
| máy nén: 
| VÔ GIÁ TRỊ
| tùy chọn mật mã: không xác định
| lỗi tùy chọn mật mã: Quá ít mật mã được hỗ trợ
| cảnh báo: 
| Chuyển tiếp bí mật không được hỗ trợ bởi bất kỳ mật mã nào
| TLSv1.1: 
| mật mã: 
| TLS_DH_anon_WITH_AES_256_CBC_SHA - F
| máy nén: 
| VÔ GIÁ TRỊ
| tùy chọn mật mã: không xác định
| lỗi tùy chọn mật mã: Quá ít mật mã được hỗ trợ
| cảnh báo: 
| Chuyển tiếp bí mật không được hỗ trợ bởi bất kỳ mật mã nào
| TLSv1.2: 
| mật mã: 
| TLS_DH_anon_WITH_AES_256_CBC_SHA - F
| máy nén: 
| VÔ GIÁ TRỊ
| tùy chọn mật mã: không xác định
| lỗi tùy chọn mật mã: Quá ít mật mã được hỗ trợ
| cảnh báo: 
| Chuyển tiếp bí mật không được hỗ trợ bởi bất kỳ mật mã nào
|_ sức mạnh tối thiểu: F

Nmap đã hoàn thành: 1 địa chỉ IP (1 máy chủ lưu trữ) được quét trong 2,67 giây

Về cơ bản, không có giao thức và mật mã nào tôi đã đặt trong cấu hình ssl được sử dụng. Tôi nhận được kết quả tương tự ngay cả sau khi thay đổi giao thức và thử mật mã cụ thể.

Tôi đang sử dụng Centos 8, Apache 2.4.37 và Openssl 1.1.1g

Đây là cài đặt mật mã và giao thức ssl mới nhất của tôi:

Giao thức SSL tất cả -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

Tôi đã đặt chúng trong tất cả cấu hình ssl mà tôi biết có chứa SSLProtocol và SSLCipherSuite trong máy chủ của mình:

/etc/httpd/conf.d/ssl.conf

/etc/httpd/conf.d/mydomain.conf

/etc/letsencrypt/options-ssl-apache.conf

Chỉnh sửa

mật mã openssl -s -v trình diễn


TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=bất kỳ Au=bất kỳ Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=bất kỳ Au=bất kỳ Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=bất kỳ Au=bất kỳ Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=ECDSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
ECDHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
ECDHE-ECDSA-AES256-CCM TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESCCM(256) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-CCM TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESCCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA256
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-ECDSA-AES256-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(256) Mac=SHA1
ECDHE-RSA-AES256-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1
ECDHE-ECDSA-AES128-SHA TLSv1 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1
ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
AES256-GCM-SHA384 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(256) Mac=AEAD
AES256-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(256) Mac=AEAD
AES128-GCM-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AESGCM(128) Mac=AEAD
AES128-CCM TLSv1.2 Kx=RSA Au=RSA Enc=AESCCM(128) Mac=AEAD
AES256-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA256
AES128-SHA256 TLSv1.2 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA256
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(256) Mac=AEAD
DHE-RSA-CHACHA20-POLY1305 TLSv1.2 Kx=DH Au=RSA Enc=CHACHA20/POLY1305(256) Mac=AEAD
DHE-RSA-AES256-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(256) Mac=AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AESGCM(128) Mac=AEAD
DHE-RSA-AES128-CCM TLSv1.2 Kx=DH Au=RSA Enc=AESCCM(128) Mac=AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(256) Mac=SHA256
DHE-RSA-AES128-SHA256 TLSv1.2 Kx=DH Au=RSA Enc=AES(128) Mac=SHA256
DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1
DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1

openssl s_client -kết nối server_public_IP:443 lợi nhuận

ĐÃ KẾT NỐI(00000003)
140639468660544:error:14094410:SSL thường trình:ssl3_read_bytes:sslv3 cảnh báo bắt tay thất bại:ssl/record/rec_layer_s3.c:1544:SSL cảnh báo số 40
---
không có chứng chỉ ngang hàng
---
Không có tên CA chứng chỉ ứng dụng khách nào được gửi
---
Bắt tay SSL đã đọc 7 byte và ghi 301 byte
Xác minh: OK
---
Mới, (NONE), Mật mã là (NONE)
Đàm phán lại an toàn KHÔNG được hỗ trợ
Nén: KHÔNG CÓ
Mở rộng: KHÔNG CÓ
Không có ALPN nào được thương lượng
Dữ liệu ban đầu không được gửi
Xác minh mã trả về: 0 (ok)
---

Tôi đã thử giao thức và mật mã TLS khác nhiều lần và mọi thay đổi tôi thực hiện đều không có tác dụng gì.

Có một cái gì đó tôi bỏ lỡ?

Có lẽ có tệp cấu hình khác ghi đè lên cấu hình?

Bất kỳ trợ giúp được đánh giá cao, cảm ơn

lá cờ br
Bạn có phần `ssl_conf` trong tệp cấu hình openssl trên toàn hệ thống không (`/etc/pki/tls/openssl.cnf` trên CentOS tôi tin vậy). Nếu vậy, điều đó có thể hạn chế sự lựa chọn mật mã của bạn. Ngoài ra, `openssl -s -v` có liệt kê tất cả/một số/bất kỳ bộ mật mã nào bạn đã chọn không?
actomobile avatar
lá cờ ne
@garethTheRed đây là ssl_conf bên trong openssl.cnf ```ssl_conf = ssl_module```. tôi nên thay đổi gì để sửa nó?. ```openssl ciphers -s -v``` thực sự có bộ mật mã đã chọn của tôi
lá cờ br
Tạm thời bình luận nó ra và xem nếu điều đó giúp. Ngoài ra, `openssl ciphers -s -v` cần liệt kê các mật mã được máy chủ của bạn chấp nhận __and__ do khách hàng cung cấp - không chỉ mật mã trước đây.
actomobile avatar
lá cờ ne
@garethTheRed Nhận xét không giúp được gì. Kết quả tương tự. Các mật mã này là từ trình tạo cấu hình ssl của Mozilla, tôi cho rằng nó sẽ chấp nhận chúng. Ngoài ra còn có dòng ```.include /etc/crypto-policies/back-ends/opensslcnf.config``` trong ```openssl.cnf```. tệp đó cũng có phần CipherSuite. Có lẽ điều đó cũng ghi đè lên cấu hình?
actomobile avatar
lá cờ ne
Không, việc thay đổi CipherSuites trong ```/etc/crypto-policies/back-ends/opensslcnf.config``` không hoạt động
lá cờ br
Bạn có thể bắt đầu sử dụng Wireshark hoặc tcpdump để giám sát máy chủ và xem mật mã nào được cung cấp trong quá trình bắt tay. Một tùy chọn khác là sử dụng các ứng dụng khách khác nhau (ví dụ: `openssl s_client`) để xem liệu nó có kết nối hay không và thậm chí thử một máy chủ cơ bản với `openssl s_server` để xem liệu nó có cho phép kết nối hay không. Những công cụ này sẽ giúp bạn thu hẹp vấn đề nằm ở đâu.
actomobile avatar
lá cờ ne
@garethTheRed `openssl s_server` trả về nhiều lỗi khác nhau về một số tệp chứng chỉ không tồn tại. Sau khi tạo các tệp nói trên, lỗi thiếu tệp không xuất hiện, thay vào đó tôi nhận được `140638281008960:error:0909006C:PEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: BẤT KỲ KHÓA RIÊNG TƯ`. nhưng tôi không biết tệp nào nên có dòng PRIVATE KEY
lá cờ br
Nếu bạn xem trang hướng dẫn của s_server, bạn sẽ thấy nó cần một khóa riêng. Điều này có thể được nhúng trong chứng chỉ (được chuyển dưới dạng `-cert`) hoặc một tệp khác được chuyển dưới dạng `-key`. Khóa riêng sẽ được tạo khi bạn tạo chứng chỉ.
actomobile avatar
lá cờ ne
@garethTheRed thêm `-cert` và `-key` hoạt động. Lệnh trả về `Sử dụng tham số DH tạm thời mặc định CHẤP NHẬN`. Tôi cho rằng lý do nmap chỉ hiển thị `TLS_DH_anon_WITH_AES_256_CBC_SHA - F` cipher là do openssl sử dụng các tham số DH? Nếu vậy, làm thế nào tôi có thể thay đổi điều đó?
lá cờ br
Nếu bạn chạy lại nó với tùy chọn `-www` (chữ thường), sau đó trỏ một trình duyệt vào nó, nó sẽ liệt kê các mật mã mà nó có khả năng và các mật mã chung cho nó và trình duyệt. Điều đó có thể giúp bạn. Ngoài ra, thuật toán khóa công khai của bạn là gì? Danh sách trong câu hỏi của bạn chỉ có RSA và ECDSA là thuật toán chính được chấp nhận - tôi cho rằng bạn đang sử dụng một trong số đó?
actomobile avatar
lá cờ ne
@garethTheRed Tôi đang sử dụng RSA làm thuật toán chính (tôi nghĩ vậy). Tôi đang nghĩ có lẽ vấn đề nằm ở mạng bên ngoài? Sử dụng IP máy chủ cục bộ khi chạy `nmap` hoặc `s_client` trong máy chủ hoạt động tốt và các mật mã được liệt kê. Nhưng khi tôi sử dụng IP công khai của máy chủ thì kết quả giống như các lỗi ở trên.
actomobile avatar
lá cờ ne
Nếu tôi dừng dịch vụ httpd, tôi sẽ gặp lỗi khác khi cố truy cập web bằng http và https. http trả về "Kết nối đã được đặt lại" trong khi https vẫn trả về cùng một "NO_CYPHER_OVERLAP". không phải họ phải có cùng một lỗi?
lá cờ br
Sau đó, bạn có một thứ khác đang chạy đang phản hồi. Chạy `netstat -tlnp` hoặc `ss -tlnp` (cả hai đều là root) để xem những gì đang nghe trên các cổng đó.
actomobile avatar
lá cờ ne
@garethTheRed Có vẻ như vậy. Nhưng chỉ có httpd là nghe cổng. Khi tôi dừng nó, trình kiểm tra cổng mở cho thấy cổng vẫn đang mở, mặc dù không có gì đang nghe cổng. Có lẽ vấn đề thực sự nằm ngoài máy chủ của tôi.
actomobile avatar
lá cờ ne
@garethTheRed Tôi đã tìm ra vấn đề! Hóa ra đó là vì cổng đơn giản là không được chuyển tiếp và một cái gì đó khác thực sự đang lắng nghe nó. Tôi chưa bao giờ xem xét điều đó vì nó được mở trong trình kiểm tra cổng mở, vì vậy tôi nghĩ rằng nó đã được chuyển tiếp. Cảm ơn bạn đã giúp đỡ!
Điểm:1
lá cờ ne

Hóa ra vấn đề không nằm ở cấu hình. Cổng tôi đang sử dụng đơn giản là không được chuyển tiếp và có thứ gì khác đang lắng nghe cổng đó, do đó làm cho trình kiểm tra cổng mở hiển thị cổng là mở. Mọi thứ hoạt động tốt sau khi chuyển tiếp cổng

Đă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.