一、问题描述:
使用gmssl v3的windows版本,下载地址:https://github.com/guanzhi/GmSSL/releases/tag/v3.1.1,
在制作证书时,想将CN(Common name)写为中文,增加证书的辨识度,但生成证书上乱码。
二、解决过程:
由于证书文件中的中文是采用UTF-8编码。
gmssl certgen -C CN -ST BEIJ -L BEIJ -O CZ -OU IT -CN 李某某 -days 3650 -key lim.pem -pass xxxx -out lim.cer
失败-尝试1、在CMD、powershell中更改codepage,使用命令chcp 65001来更改为UTF8,但无论如何也不行。
powershell在utf8代码页中甚至中文都录入不了,直接乱码,在gbk代码页中虽然中文能显示,但生成的文件依然是乱码的。这里我感到windows对utf8的支持太差了。
失败-尝试2、在git bash工具执行,虽然默认字符集是UTF8,但执行完依然不行。
成功-尝试3、在linux中将v3的代码进行编译(没有改任何代码)后再执行,生成的证书-中文正常。
$ mkdir build
$ cd build
$ cmake ..
$ make