使用openssl生成自签名证书后,在软件调试时提示如下报错:

tls: failed to parse certificate from server: x509: certificate contains duplicate extensions

证书生成命令为:

openssl x509 -req -extfile /etc/pki/tls/openssl.cnf -extensions v3_req -in client-req.csr -out client-cert.cer -signkey client-key.key -CA root-cert.cer -CAkey root-key.key -CAcreateserial -days 36500

排查思路

查看证书信息

通过查看证书信息,可以看到X509v3 extensions中存在多个X509v3 Basic ConstraintsX509v3 Key Usage扩展信息。

[root@ym68 ~]# openssl x509 -in client-cert.cer -noout -text 
Certificate:
    Data:
    ........
    Signature Algorithm: sha256WithRSAEncryption
    ........
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Basic Constraints: 
                CA:FALSE
            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Key Encipherment
    Signature Algorithm: sha256WithRSAEncryption
    ........
解决办法

在证书生成命令中添加 -clrext选项即可。

openssl x509 -req -extfile /etc/pki/tls/openssl.cnf -extensions v3_req -clrext -in client-req.csr -out client-cert.cer -signkey client-key.key -CA root-cert.cer -CAkey root-key.key -CAcreateserial -days 36500
Signature ok
END

本文标题:openssl自签名证书报错x509: certificate contains duplicate extensions

本文作者:宇宙最帅的男人

本文链接:https://lolicp.com/linux/202322566.html

版权声明:转载或者引用本文内容请注明来源及原作者,本文著作权归作者 (宇宙最帅的男人) 所有。

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最后修改:2023 年 04 月 22 日
如果觉得我的文章对你有用,请随意赞赏