ves*_*rto 6 unicode ssl certificate
我已经创建了一个自签名SSL证书,并且使用它没有问题,但是浏览器(Firefox,Chrome / IE)在组织名称中显示乱码(ASCII上面的任何字符都有2个字符)。
我在运行在virtualbox(Win主机)上的Debian中创建了证书,外壳的语言环境均为* .UTF-8,为此我使用了CA.pl。我可以使用Unicode字符创建文件,没有其他问题,但是该证书具有“Organizaução”而不是“Organização”。
有小费吗?转义字符(如何)?是否将语言环境简化为ISO / IEC 8859-1?使用一些非shell方法?我缺少明显的东西吗?
附带说明一下,是否有一种简单的方法(即4ummies™)来分发证书,因此用户只需单击并安装即可?我见过的所有指南都包含了太多的窗口,普通用户无法理会。并且无需安装浏览器,每次用户访问时浏览器都会发出尖叫声(Firefox除外,Firefox允许通过警告框轻松安装)。
编辑1
检查asn1parse联机帮助页并使用其示例:
openssl asn1parse -genstr 'UTF8:Organização'
Run Code Online (Sandbox Code Playgroud)
产生:
0:d=0 hl=2 l= 17 prim: UTF8STRING :Organização
Run Code Online (Sandbox Code Playgroud)
所以我认为这是输入问题。这是我的语言环境信息:
LANG=pt_PT.utf8
LANGUAGE=en_US:en
All LC_* fields="pt_PT.utf8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)
我可以轻松地触摸Organização或其他任何带有非ASCII字符的文件,但我的CA证书却被愚蠢地降低到8位。
编辑2
我从本教程开始,但是继续阅读OpenSSL手册。在阅读该书的req
时候,我在错误部分中遇到了这个问题:由于T61String处理的结果,在OpenSSL中表示重音字符的唯一正确方法是使用BMPString
所以我尝试了:
openssl asn1parse -genstr 'BMP:Organização'
Run Code Online (Sandbox Code Playgroud)
并以一个空字符串结尾:
0:d=0 hl=2 l= 26 prim: BMPSTRING
Run Code Online (Sandbox Code Playgroud)
遵循另一个教程并将证书创建调整为:
openssl req -new -x509 -days 365 -utf8 -out cert.pem -keyout key.pem
Run Code Online (Sandbox Code Playgroud)
我选择用问题的答案填充默认配置文件(而不是通过提示提供它们)并添加一个带注释的非 ASCII 字符只是为了确保它是一个 unicode 文件(我猜有点不必要,但file
让我高兴地说UTF-8 Unicode 文本)。
归档时间: |
|
查看次数: |
7733 次 |
最近记录: |