đ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.