OpenSSLを使用して証明書のsubjectaltnameのothernameに日本語の性別を格納しようとしています。

まず、openssl.cnfに以下の文を追加し、othernameの値を設定しました。

Sex = 1.1.1.5

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment

subjectAltName = otherName:Sex;UTF8String:男性

次にOpenSSLコマンドでpemファイルを作成

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout cert.pem
-out cert.pem

ブラウザに読み込むためpfxファイルを作成

openssl pkcs12 -export -out cert.pfx -in cert.pem -name "test"

pfxファイルをブラウザにインポートした後、証明書ストアを確認したところ、othernameに16進数で値は入っていましたが、正確に変換されていませんでした。

Other Name:
     1.1.1.5=0c 07 c2 92 6a c2 90 c2 ab

期待値としてはUTF-8の16進数に変換されていると思ったのですが結果としては16進数のShift-JISに近い値でした。

「男性」の16進数UTF-8:   e7 94 b7 e6 80 a7
「男性」の16進数Shift-JIS:92 6a 90 ab

正しい値を設定するにはどうすれば良いでしょうか。よろしくお願いします。

追記
@sanadanへの指摘からopenssl.cnfをUTF-8で保存をして、上記処理を再度実施しました。
結果としてはまだうまく変換できませんでした。

UTF8Stringの場合は正しく変換されていない。BITSTRINGの場合は先頭にゴミが入る。他のフォーマットを試してみたがうまく変換されない。正しくはe794b7 e680a7 となるべき。

設定1
subjectAltName = otherName:Sex;UTF8String:男性
結果1
Other Name:
     1.1.1.5=0c 0c c3 a7 c2 94 c2 b7 c3 a6 c2 80 c2 a7



設定2
subjectAltName = otherName:Sex;BITSTRING:男性
結果2
Other Name:
     1.1.1.5=03 07 00 e7 94 b7 e6 80 a7

上記のように先頭に無駄な文字が入ってしまいますが、BITSTRINGの場合が一番マシに変換できました。