usar tutorial generate generar crear como certificado utf-8 openssl csr

utf-8 - tutorial - openssl linux



¿Cómo crear CSR con el tema utf8 en openssl? (3)

Intento generar solicitud de firma de certificado con el tema UTF-8.

$ 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:

La codificación de terminal es UTF-8, tengo el mismo problema cuando uso el asunto de la línea de comando (...) -subj /C=PL/ST=zażółć/ gęślą/ jaźń/O=my-company/CN=ThisIsMeForSure

Cuando -utf8 el -utf8 , el CSR se genera con todos los caracteres no ascii reemplazados con notación hexadecimal (por ejemplo, ó convierte en /xC3/xB3 ). Tal CSR no puede leerse correctamente con php ( openss_x509_parse ) - el original ó se lee como cuatro bytes, representando dos personajes extraños ...

¿Qué estoy haciendo mal?


Intenta usar la opción string_mask:

string_mask

Esta opción enmascara el uso de ciertos tipos de cadenas en ciertos campos. La mayoría de los usuarios no necesitarán cambiar esta opción.

Se puede establecer en varios valores predeterminados, que también es la opción predeterminada. Utiliza PrintableStrings, T61Strings y BMPStrings si se usa el valor de pkix, entonces solo se usarán PrintableStrings y BMPStrings. Esto sigue la recomendación de PKIX en RFC2459. Si se utiliza la opción utf8only, solo se usarán UTF8Strings : esta es la recomendación de PKIX en RFC2459 después de 2003. Finalmente, la opción de nombstr solo usa PrintableStrings y T61Strings: cierto software tiene problemas con BMPStrings y UTF8Strings: en particular Netscape.


He tenido éxito con el comando

openssl req -new -utf8 -nameopt multiline,utf8 -config example.com.cnf -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr

Donde example.com.cnf es un archivo de configuración en UTF-8:

[req] prompt = no distinguished_name = dn req_extensions = ext [dn] CN = Описание сайта # Site description emailAddress = [email protected] O = Моя компания # My company OU = Моё подразделение # My dept L = Москва # Moscow C = RU [ext] subjectAltName = DNS:example.com,DNS:*.example.com

Se muestra correctamente en Chrome, Firefox y Safari.


Cualquier trabajo Unicode para mí, desde el archivo php.

<? shell_exec(''openssl req -new -md5 -utf8 -key C:/Temp/1.key -out C:/Temp/1.csr -subj "/C=MD/ST=ff/O=Religie/OU=Cen/CN=中国/[email protected]" -config C:/Temp/openssl.cnf''); ?>