使用openssl生成ssl服务器请求证书解决中文乱码的问题

使用openssl生成ssl服务器请求证书需要输入State or Province Name、Locality Name、OrganizationName等,有时候需要填写中文,签发证书的时候这些中文就变成了乱码,网上看了很多贴子解决这个问题,试了都不顺利,经过多次测试,现将解决方法汇总如下:

1、windows下使用openssl生成请求证书

安装openssl后,如果未添加系统环境变量,需要进入openssl安装目录/bin目录下,执行相关命令。

  • 第一步 生成密钥
如在openssl/bin输入命令“openssl genrsa -out server.key 2048”

使用openssl生成ssl服务器请求证书解决中文乱码的问题_第1张图片

  • 第二步 修改配置文件,/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”

全部使用默认配置,回车直至结束。

使用openssl生成ssl服务器请求证书解决中文乱码的问题_第2张图片

2、Linux下使用openssl生成请求证书

  • 第一步 生成密钥(同上)

输入命令“openssl genrsa -out server.key 2048”

  • 第二步 生成请求证书

输入命令:“openssl req -new -key server.key -out server.pem -utf8”

使用openssl生成ssl服务器请求证书解决中文乱码的问题_第3张图片


至此,完成SSL服务器请求证书的生成,以上方法均经过测试。

你可能感兴趣的:(openssl)