首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试X509TrustManager子类?

如何测试X509TrustManager子类?
EN

Stack Overflow用户
提问于 2012-05-22 21:44:32
回答 2查看 1.9K关注 0票数 1

我对javax.net.ssl.X509TrustManager进行了子类化,这样我就可以使用私有SSL证书了。现在我试图为类编写一个JUnit测试,但是测试用例总是给我一个空指针异常。

例如,我的checkClientTrusted()实现是一个空方法。但是,当我使用X509Certificate[]的有效实例(以及任何类型的字符串)调用该方法时,JUnit会在这一行测试代码中报告一个NullException。对于我错过了什么有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-23 13:11:14

问题是我从junit.framework.TestCase中子类我的测试类,这导致我的@BeforeClass设置方法没有被调用(因此我实例化的变量仍然是空的)。删除之后,事情就开始运作了。

票数 1
EN

Stack Overflow用户

发布于 2012-05-22 22:06:06

子类'X509TrustManager‘仅仅是为了使用自签名的证书(我想这就是’私有SSL证书‘的意思吗?)有点过分了。使用这种证书的更容易的方法是:

使用密钥库文件(信任存储库)和证书(或创建自签名证书的CA的证书),并将应用程序指向该证书。你所要做的就是确保'SSLContext‘知道你的信任库。详细信息请看Custom SSL for advanced JSSE developers (写得很好)一篇文章。从技术上讲,这比使用全局JRE信任存储更加安全,因为只有您的证书才会被接受为有效。

使用“keytool”将证书(或创建自签名证书的CA证书)添加到JRE的全局信任存储区。全局JRE信任库位于'$JAVA_HOME/lib/security/cacerts‘中。JRE信任库的密码始终是“changeit”。尽管这种方式显然会使部署更加困难,因为有时您并不控制JRE的安装。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10710633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档