最近在用openssl工具制作证书的时候遇到了一些具体问题,平常config格式和一些openssl命令很多资料都有介绍该怎么处理,而这次我遇到的主要是两个问题,1个人信息是中文的时候会乱码,2 两个属性相同该怎么办
比如 这个证书是这样的 CN=李小 12344,L=22, L=09, O=32, C=CN, 在写config 的时候定义两个L的时候只有后一个会被承认,这两个问题其实跟dos控制台有关系,按照有些人人提供的资料,避免中文乱码就要把config里加string_mask = utf8only且另存为utf8格式,让后再dos命令的时候加一个 -utf8 在 -config前面,但当把复制的中文copy到dos里后敲命令也提示成功,但拿工具一看李小已经成乱码,最后我想了想配置以及命令应该都没问题是不是dos在处理的过程中先把屏幕上的中文给变成ANSI了,那就不要再dos上copy中文上去,最后我把prompt设成no,直接把中文值在config里给附上,执行的时候没有任何提示但utf8格式的中文被正确处理了,而且两个L属性我是这样做的,第一个直接定义成L=99,第二个写成localityName = 85就可以得到两个L聊
这里贴上自己的config 以及四个openssl命令
#lll.config
[ req ]
default_bits = 1024
default_keyfile =
prompt = no
string_mask = utf8only
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
C= CN
stateOrProvinceName = 32
L = 02
localityName = 85
O = 32
OU = 00
organizationalUnitName = 00
CN = 苏小小 12345
command dos
> openssl genrsa -out C:/ca/ca-key.pem 1024
> openssl req -new -out C:/ca/ca-req.csr -key C:/ca/ca-key.pem -utf8 -config c:\lll.config
> openssl req -new -x509 -in C:/ca/ca-req.csr -out C:/ca/ca-cert.pem -key C:/ca/ca-key.pem -days 3650 -utf8 -config c:\lll.config
> openssl pkcs12 -export -clcerts -in C:/ca/ca-cert.pem -inkey C:/ca/ca-key.pem -out C:/ca/ca.p12