Điểm:0

Trang web này thiếu chứng chỉ hợp lệ, đáng tin cậy || Máy chủ web Apache2, CA gốc của Windows

lá cờ bh

Tôi đang cùng nhau tìm hiểu về chứng chỉ, HTTPS và sau 4 ngày, tôi không biết cách thiết lập để trở nên đáng tin cậy. Trong phòng thí nghiệm của tôi env. Tôi có một máy chủ Windows có vai trò CA.

Trước đây tôi đã cài đặt VM-Dell OpenManage cho máy chủ của mình. Nó có giao diện đồ họa cho các yêu cầu và chứng chỉ nhập để truy cập HTTPS. Tôi đã tạo thành công Yêu cầu ký chứng chỉ và nhận chứng chỉ từ máy chủ CA windows của mình (https://x.x.x.x/certsrv/) Nó được thực hiện dưới 2 phút.

Tôi nghĩ rằng tôi có thể thử điều này, trên máy chủ web apache2 (Ubunut20.04). Chà, bây giờ tôi đang bị mắc kẹt và vẫn không biết làm thế nào để nó hoạt động.

1. Hiện tại (sau ~50 yêu cầu openssl) tôi đã yêu cầu chứng chỉ bằng các lệnh sau:

openssl req -new -newkey rsa:2048 -nodes -addext âsubjectAltName = DNS:*.mydomain.localâ -keyout serverkey.key -out serverreq.csr

2. Tôi đã mở máy chủ CA windows của mình từ trình duyệt https://x.x.x.x/certsrv/ và Yêu cầu chứng chỉ-->Yêu cầu chứng chỉ nâng cao-->dán nội dung serverreq.csr-->WebserverTemplate. Tải xuống chứng chỉ.

3. Quay lại linux, file conf của mình (/etc/apache2/sites-avaliable/mysite.conf): trông như thế này.

<VirtualHost _default_:443>
        Protocols h2 http/1.1
                ServerName  mysite.local
                ServerAlias www.mysite.local
                DocumentRoot /var/www/html/mysite
                SSLEngine on
                SSLCertificateFile      /etc/ssl/certandkey/myservercert.crt
                SSLCertificateKeyFile   /etc/ssl/certandkey/myserverkey.key
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost *:80>
    ServerName mysite.local
    Redirect / https://mysite.local/
</VirtualHost>

Tôi có cần phải cấu hình # Chuỗi chứng chỉ máy chủ: và # Tổ chức phát hành chứng chỉ (CA):?

Apache đang chạy

4. Sau này, nếu tôi mở trang web, nó báo

Giấy chứng nhận - mất tích
Trang web này thiếu chứng chỉ hợp lệ, đáng tin cậy (net::ERR_CERT_COMMON_NAME_INVALID).

Nhưng nếu tôi mở OpenManage thì nó báo

Giấy chứng nhận - hợp lệ và đáng tin cậy
Kết nối đến trang web này đang sử dụng chứng chỉ máy chủ hợp lệ, đáng tin cậy do mydomain-DC-CA cấp

Cả hai chứng chỉ đều từ cùng một máy chủ Windows CA.

5. Tôi đã cố định cấu hình /etc/ssl/openssl.cnf, nhưng tôi không thực sự hiểu cách thực hiện.Nếu tôi chỉnh sửa một cái gì đó, thì không có gì hoạt động.

Có gì sai với cấu hình của tôi, làm thế nào tôi có thể cấu hình nó? Có bất kỳ hướng dẫn tốt? 90% thời gian google chỉ hiển thị chứng chỉ tự ký và ma thuật trình duyệt. Nhưng tôi muốn cấu hình nó với windows CA.

Cảm ơn vì sự giúp đỡ

Xin lỗi vì tiếng Anh của tôi.

Gerrit avatar
lá cờ cn
Bạn có thể hiển thị kết quả đầu ra của: `openssl x509 -subject -in /etc/ssl/certandkey/myservercert.crt -noout` và `openssl x509 -checkhost mysite.local -in /etc/ssl/certandkey/myservercert.crt -noout `?
Finaria avatar
lá cờ bh
Tôi gặp lỗi: `Tên máy chủ myserver KHÔNG khớp với chứng chỉ`. Làm cách nào tôi có thể biết tên máy chủ của chứng chỉ là gì? `openssl x509 -in /etc/ssl/glpicertkey/glpiservercert.crt -text` với điều này, tôi không thấy tên máy chủ trong chứng chỉ. `root@myserver:/home/user# openssl x509 -checkhost myserver -in /etc/ssl/certandkey/servercert.crt -noout Tên máy chủ myserver KHÔNG khớp với chứng chỉ root@myserver:/home/user# openssl x509 -subject -in /etc/ssl/certandkey/servercert.crt -noout chủ đề=C = HU, ST = Hungary, L = Thành phố, O = mycompany, OU = IT, CN = mydomain.local`
Gerrit avatar
lá cờ cn
mydomain.local nằm trong CN và điều đó không khớp với mysite.local, vì vậy điều đó sẽ không cung cấp kết quả khớp. Ngoài ra, bạn phải bao gồm các mục DNS trong Tên thay thế chủ đề để xem nó có khớp không. Tôi đã thêm thông tin này vào câu trả lời của mình.
Điểm:0
lá cờ cn

đang tạo

Bạn có thể sử dụng một tệp mở rộng nhỏ (utf-8) để đặt trước các mục bạn muốn và tạo CSR dễ dàng hơn. Các mục nhập DNS phải là mã punycode nếu không phải là ASCII. (https://www.rfc-editor.org/rfc/rfc3492)

[yêu cầu]
default_bits = 2048
nhắc nhở = không
default_md = sha256
tên_phân_biệt = dn
req_extensions = máy lẻ

[ máy lẻ ]
chủ đềKeyIdentifier=băm
keyUsage=chữ ký số, keyEncipherment
chủ đềAltName = @alt_names

[alt_names]
DNS.1 = mysite.local
DNS.2 = www.mysite.local

[ d ]
O=ACME
OU=KIỂM TRA
[email protected]
CN = mysite.local

Bạn có thể lưu cái này dưới dạng sslcert.cnf Ví dụ.

Nhận xét về ký tự đại diện

Bạn có thể sử dụng ký tự đại diện như *.example.com. Họ chỉ làm việc trên một cấp độ. foo.bar.example.com sẽ không thuộc phạm vi quản lý của *.example.com. Ngoài ra *example.com không hoạt động, dấu hoa thị phải nằm trong thành phần miền riêng của nó.

Sau đó, nếu bạn chưa có khóa riêng:

openssl req -nodes -newkey rsa:2048 -keyout sslcert.key -out sslcert.csr -config sslcert.cnf -utf8

Hoặc nếu bạn đã có khóa riêng sslcert.key

openssl req -key sslcert.key -out sslcert.csr -config sslcert.cnf -utf8

sslcert.csr sẽ là đầu ra (và cũng sslcert.key trong ví dụ đầu tiên)

Bạn cũng có thể thêm phần chủ đềAltName với -addext

openssl req -nodes -newkey rsa:2048 -keyout sslcert.key -out sslcert.csr -addext 'subjectAltName = DNS:example.com' -utf8

kiểm tra tên

Bạn có thể sử dụng lệnh openssl để kiểm tra xem chứng chỉ có khả năng khớp với miền bạn sử dụng khi duyệt không

openssl x509 -in sslcert.crt -noout -checkhost example.com

Trong lịch sử, mục CN trong tên phân biệt của vấn đề đã được sử dụng trong kiểm tra tên máy chủ SSL. Và theo quy ước, nó vẫn chứa đầy một trong các miền, nhưng chẳng hạn như Chrome sẽ không chấp nhận chứng chỉ không sử dụng phần Tên thay thế chủ đề (SAN). Và đây cũng là phần được sử dụng cho chứng chỉ đa tên (ngay cả khi bạn chỉ sử dụng tên miền có và không có www, đó đã là chứng chỉ đa tên). Theo tiêu chuẩn CA/Trình duyệt, bất kỳ tên nào bạn đặt trong CN cũng phải được đưa vào phần tên thay thế.

Bạn có thể thấy những thứ đó trong đầu ra của

openssl x509 -text -noout -in cert.crt | grep -F 'Tên thay thế chủ đề:' -A 1

Thật không may, không có công tắc đầu ra sẵn sàng nào chỉ dành cho phần SAN.

Nó trông giống như:

            Tên thay thế chủ đề X509v3:
                DNS:cert.local, DNS:cert.example.com

kiểm tra máy chủ web

Để xem máy chủ web của bạn có trả lại chứng chỉ và chuỗi (nếu bạn có trung gian) mà bạn đã đặt hay không, bạn cũng có thể sử dụng dòng lệnh openssl (có thể từ chính máy chủ web).

openssl s_client -connect example.com:443 -servername example.com -showcerts

Nếu bạn đang sử dụng một CA không có trên máy thực thi lệnh openssl, bạn sẽ gặp lỗi xác minh, nhưng ít nhất bạn có thể thấy các chứng chỉ được trả về.

Trong kết nối, bạn cũng có thể sử dụng địa chỉ IP, vì vậy nếu máy chủ web nằm trên cùng một máy và cũng lắng nghe trên vòng lặp, bạn có thể nói

openssl s_client -kết nối máy chủ cục bộ:443 -tên máy chủ example.com -showcerts

-tên máy chủ là để chọn đúng vhost nếu máy chủ web có nhiều vhost trên cổng 443.

Finaria avatar
lá cờ bh
Mình chạy lệnh: `openssl req -key sslcert.key -out sslcert.csr -config sslcert.cnf` Nhưng trong chứng chỉ không có SAN và sau khi tôi mở trang web (F12) Nó báo: `Chứng chỉ - Tên thay thế chủ đề bị thiếu Chứng chỉ cho trang web này không chứa phần mở rộng SAN chứa tên miền hoặc địa chỉ IP` Nếu tôi thêm lệnh này vào lệnh của bạn, `-addext âsubjectAltName = DNS:*.mydomain.localâ` sau đó SAN sẽ xuất hiện, nếu không có nó thì không. Và tôi đã sử dụng tệp sscert.conf và nó chứa cấu hình SAN. Vậy tại sao nó không được sử dụng? Và thiếu Chứng chỉ vẫn là một vấn đề.
Gerrit avatar
lá cờ cn
Bạn có thể thử tệp cấu hình đã sửa đổi trong câu trả lời của tôi không? Có vẻ như tôi tình cờ phụ thuộc vào một số cài đặt cơ sở trong bản phân phối openssl của hệ thống. Bạn vẫn bị thiếu chứng chỉ khi bạn có các mục nhập CN và DNS phù hợp?
Finaria avatar
lá cờ bh
Vẫn không có may mắn. Bạn có thể giải thích cách hoạt động của tên máy chủ không? Tôi nghĩ đó là nơi tôi thất bại. Tên máy chủ của tôi là glpi.mylab.local. DNS/AD của tôi là mylab.local. `[ alt_names ] DNS.1 = glpi.mylab.local DNS.2 = www.glpi.mylab.local` `[ d ] ... CN = glpi.mylab.local` Nếu tôi cheskhost cho bất kỳ kết hợp nào thì nó luôn không khớp. Tôi đang làm gì sai?
Finaria avatar
lá cờ bh
Và điều này: `openssl req -nodes -newkey rsa:2048 -keyout sslcert.key -out sslcert.csr -config sslcert.cnf -utf8` đang hoạt động nhưng không có SAN trong tệp chứng chỉ. Chỉ khi tôi thêm lệnh này vào lệnh của mình: `-addext âsubjectAltName = DNS:*glpi.mylab.localâ `
Gerrit avatar
lá cờ cn
*glpi không đúng, hoặc bạn đã thử đánh dấu ở đây chưa? *.glpi.mylab.local có thể hoạt động với biến thể có www, nhưng không hoạt động với biến thể không có www.
Finaria avatar
lá cờ bh
Hy! Không, vẫn không hoạt động. Tệp cấu hình ssl của tôi trông như thế này: `[yêu cầu] default_bits = 2048 nhắc nhở = không default_md = sha256 tên_phân_biệt = dn req_extensions = máy lẻ [ máy lẻ ] chủ đềKeyIdentifier=băm keyUsage=chữ ký số, keyEncipherment chủ đềAltName = @alt_names [alt_names] DNS.1 = glpi.mylab.local DNS.2 = www.glpi.mylab.local [ d ] địa chỉ email=không CN = mylab.local` Lệnh yêu cầu: `openssl req -new -newkey rsa:2048 -nodes -keyout tsslkey.key -out tsslreq.csr -config sslcert.cnf -utf8`
Finaria avatar
lá cờ bh
kiểm tra DNS: `openssl req -noout -text -in tsslreq.csr |grep DNS DNS:glpi.mylab.local, DNS:www.glpi.mylab.local` Adn vẫn `Trang web này thiếu chứng chỉ hợp lệ, đáng tin cậy (net::ERR_CERT_COMMON_NAME_INVALID).` tên máy chủ là glpi.mylab.local Chuyện gì thế?
Gerrit avatar
lá cờ cn
Tôi tự hỏi liệu có _default_ vhost_ thứ hai trên cổng 443 trong Apache ghi đè lên vhost của bạn không.
Gerrit avatar
lá cờ cn
Bạn đang kiểm tra CSR. Bạn cũng đã kiểm tra chứng chỉ đã cấp chưa?
Finaria avatar
lá cờ bh
Bạn nói đúng, tôi đã không kiểm tra chứng chỉ. Sai rồi: `X509v3 Tên thay thế chủ đề: tên khác:` Tại sao Nó được tạo ra như thế này, khi tệp yêu cầu tốt? Không có vhost mặc định nào khác `a2dissite default-ssl.conf Trang web mặc định-ssl đã bị vô hiệu hóa`
Gerrit avatar
lá cờ cn
Lỗi othername có thể ngụ ý rằng thông tin tên DNS đã được CA lưu trữ ở định dạng không được openssl hỗ trợ. Tên DNS phải là IA5STRING. Nhưng suy nghĩ lại, lỗi dường như chỉ ra rằng ngay cả định dạng Tên DNS cũng không được chọn hoặc một Tên chung khác được bao gồm không được hỗ trợ.. Có thể xem tab "Tên chủ đề" trong mẫu phát hành SSL của bạn. Tôi đã hoàn tất việc ký với Windows CA của các tệp CSR của openssl và điều đó luôn diễn ra khá suôn sẻ, nhưng có thể có các cài đặt hoạt động trong mẫu được sử dụng để thêm thông tin khác, không tương thích với openssl.
Gerrit avatar
lá cờ cn
Ngoài ra, để đề phòng, hãy đảm bảo rằng tệp cấu hình openssl của bạn được lưu trữ trong utf-8 hoặc ascii và chỉ có các dòng mới Unix.
Finaria avatar
lá cờ bh
Thành công :). Tôi đã loại bỏ ý tưởng tạo một tệp ssl.cnf của riêng mình. Tôi đã sử dụng cái mặc định, nhưng với -addtext SAN. Trước đây tôi đã bỏ "*" khỏi chủ đềAltName. `openssl req -new -addext "subjectAltName = DNS:glpi.mylab.local" -newkey rsa:2048 -nodes -keyout testkey.key -out testreq.csr` Sau khi tôi nhập tệp chứng chỉ, có một lỗi mới: `"Nội dung hoạt động có lỗi chứng chỉ"` Tôi vừa xóa bộ đệm của trình duyệt và chứng chỉ đã được chấp nhận, tất cả đều có màu xanh lục. Cảm ơn bạn đã giúp đỡ và kiên nhẫn.

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