Utf 8 Windows MDM注册-将CN从UTF8更改为可打印的\u字符串

Utf 8 Windows MDM注册-将CN从UTF8更改为可打印的\u字符串,utf-8,bouncycastle,Utf 8,Bouncycastle,我正在实现windows 8.1 MDM,并在设备注册部分的WSTEP阶段使用Bouncycastle。为此,我需要将已签名证书的CommonName从“UTF8”编码重写为“PRINTABLE_STRING”编码 默认情况下,BouncyCastle提供UTF8,是否有办法更改此设置?回答我自己的问题: 当我使用, new X500 Principal(“CN=someCN”)在创建X509v3CertificateBuilder时,创建的证书的公共名称采用可打印的字符串编码,而不是X500名

我正在实现windows 8.1 MDM,并在设备注册部分的WSTEP阶段使用Bouncycastle。为此,我需要将已签名证书的CommonName从“UTF8”编码重写为“PRINTABLE_STRING”编码


默认情况下,BouncyCastle提供UTF8,是否有办法更改此设置?

回答我自己的问题: 当我使用,
new X500 Principal(“CN=someCN”)
在创建
X509v3CertificateBuilder
时,创建的证书的公共名称采用可打印的字符串编码,而不是
X500名称
对象。示例代码如下所示

X509v3CertificateBuilder certificateBuilder = new JcaX509v3CertificateBuilder(caCert,BigInteger.valueOf(new SecureRandom().nextInt(Integer.MAX_VALUE)), new Date(System.currentTimeMillis() - 1000L * 60 * 60 * 24 * 3),new Date(System.currentTimeMillis() + (1000L * 60 * 60 * 24 * 300)), new X500Principal("CN=someCN"), jcaRequest.getPublicKey());