Tôi đang cố gắng tạo Yêu cầu ký chứng chỉ với chủ đề UTF-8.Cách tạo CSR với chủ đề utf8 trong openssl?
$ openssl req -utf8 -nodes -newkey rsa:2048 -keyout my.private_key.pem -out my.csr.pem -text
Generating a 2048 bit RSA private key
......................................................................................................................................................................+++
......+++
writing new private key to 'my.private_key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [PL]:
State or Province Name (full name) []:Zażółć gęślą jaźń
problems making Certificate Request
12376:error:0D07A07C:asn1 encoding routines:ASN1_mbstring_ncopy:illegal characters:a_mbstr.c:162:
ga encoding là UTF-8, tôi nhận được cùng một vấn đề khi tôi sử dụng dòng lệnh đối tượng (...) -subj /C=PL/ST=zażółć\ gęślą\ jaźń/O=my-company/CN=ThisIsMeForSure
Khi tôi bỏ qua -utf8
switch, CSR được tạo ra với tất cả các ký tự khác ASCII thay thế với ký hiệu hex (ví dụ: ó
trở thành \xC3\xB3
). CSR như vậy không thể đọc được đúng với php (openss_x509_parse
) - bản gốc ó
được đọc là bốn byte, đại diện cho hai ký tự lạ ...
Tôi đang làm gì sai?
Sử dụng 'openssl req' * nếu không có * tệp conf tùy chỉnh nghĩa là tên máy chủ sẽ nằm trong' CN'. Thực hành đó không được chấp nhận bởi cả IETF và Diễn đàn CA/B. Thay vào đó, bạn nên đảm bảo tên máy chủ (và địa chỉ IP) nằm trong 'SAN'. Xem, ví dụ: [Cách tạo chứng chỉ tự ký với openssl?] (Http://stackoverflow.com/a/27931596) (câu trả lời được sử dụng cho cả yêu cầu ký và chứng chỉ tự ký). Và 'string_mask = utf8only' được đặt trong tệp conf. – jww