使用openssl生成ssl服务器请求证书需要输入State or Province Name、Locality Name、OrganizationName等,有时候需要填写中文,签发证书的时候这些中文就变成了乱码,网上看了很多贴子解决这个问题,试了都不顺利,经过多次测试,现将解决方法汇总如下:
1、windows下使用openssl生成请求证书
安装openssl后,如果未添加系统环境变量,需要进入openssl安装目录/bin目录下,执行相关命令。
- 第一步 生成密钥
- 第二步 修改配置文件,/bin/openssl.cnf,修改项如下:
string_mask = utf8only
countryName_default = CN
stateOrProvinceName_default = 中文的省份名称
localityName_default = 中文的城市名称
0.organizationName_default = 组织、公司
organizationalUnitName_default = 组织机构
commonName_default = 张三的中文证书
- 第三步 转换配置文件格式
输入命令“iconv -f gbk -t utf-8 openssl.cnf > openssl_utf8.cnf”
备注:由于windows下无此命令,需要将改好的openssl.cnf文件拷贝至linux环境下,转换完成后将转换后的文件拷贝至window下。
- 第四步 生成请求证书
输入命令:“openssl req -utf8 -config moa_utf8.cnf -key server.key -new -out server.pem”
全部使用默认配置,回车直至结束。
2、Linux下使用openssl生成请求证书
- 第一步 生成密钥(同上)
输入命令“openssl genrsa -out server.key 2048”
- 第二步 生成请求证书
输入命令:“openssl req -new -key server.key -out server.pem -utf8”
在使用openssl生成SSL服务器请求证书时遇到中文乱码问题,本文提供了Windows和Linux环境下的解决方案。通过修改openssl配置文件,设置string_mask为utf8only,并使用iconv转换编码,最终成功生成包含中文的证书。
2171

被折叠的 条评论
为什么被折叠?



