Próbuję wygenerować żądanie podpisania certyfikatu z tematem UTF-8.Jak stworzyć CSR z tematem utf8 w 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:
kodowania Terminal jest UTF-8, mam ten sam problem, kiedy używać wiersza poleceń przedmiot (...) -subj /C=PL/ST=zażółć\ gęślą\ jaźń/O=my-company/CN=ThisIsMeForSure
Kiedy pominąć przełącznik -utf8
, CSR jest generowany ze wszystkie znaki spoza ASCII zastąpiony z notacją szesnastkową (np. ó
staje się \xC3\xB3
). Taki CSR nie może być odczytany poprawnie z php() - oryginalny ó
jest czytany jako cztery bajty, reprezentujące dwie dziwne postacie ...
Co robię źle?
Używanie 'openssl req' * bez * niestandardowego pliku conf oznacza, że nazwa serwera będzie znajdować się w' CN'. Ta praktyka jest przestarzała zarówno przez fora IETF, jak i CA/B. Zamiast tego należy upewnić się, że nazwy serwerów (i adresy IP) znajdują się w 'SAN'. Zobacz na przykład [Jak utworzyć samopodpisany certyfikat z openssl?] (Http://stackoverflow.com/a/27931596) (odpowiedź jest używana zarówno dla żądań podpisywania, jak i samopodpisanych certyfikatów). I "string_mask = utf8only" jest ustawiony w pliku conf. – jww