Not-Yet-Commons-SSL提供强大(而且免费)的SSL功能

Not-Yet-Commons-SSL是Apache许可证下的一款Java类库,它提供易于使用的API,并支持各种各样的证书格式和配置选项,来达到简化SSL的使用的目的。尤其是,它允许在单个JVM中使用多个证书,优雅地处理自签名证书,以及支持所有标准的证书格式,从而解决了一些长期以来一直存在的Java内建的SSL支持问题。

这个项目提出了五个设计目标,同时也总结了该库的特性:

使SSL和Java更加简单。你曾经想在你的Java应用中以一种安全的方式来使用自签名证书吗?或是在单个运行的JVM中使用不止一个客户端证书?你当然可以编辑你的 $JAVA_HOME%/jre/lib/security/cacerts文件,或者通过 -Djavax.net.ssl.keyStore=/path/to/keystore来调用Java。这两个办法在开始的时候都很不错,但它们伸缩性并不好。你真的会想因为那些系统范围的变化,而污染掉你JVM中(HTTP、LDAP、JDBC、RMI等等)每个SSL套接字吗?Commons-SSL可以让你一种自然的方式对每一个 SSLSocketFactory控制你需要的SSL选项,而且那些选项不会混入到你系统的其它部分。
增强安全性。 CRL检查缺省是打开的。我们希望会很快添加对 OCSP的支持!每过24小时就不得不从Thawte和Verisign下载大约500KB大小的CRL文件,这的确很令人讨厌。OCSP就是针对它的改善。
增强灵活性。一旦创建 SSLSocketFactory,就可以对检查主机名、过期期限、CRL的和许多其他的选项进行开关设置。
支持更多的文件格式,而且更加智能化。
  • commons-ssl支持PKCS8的超过50种格式 ,以及PEM或DER编码的OpenSSL加密私钥。
  • X.509证书可以使用PEM或者DER编码。也可以以PKCS7链的形式产生(公平地说,Java一直支持这个)。
  • PKCS12文件可以用PEM编码(由openssl pkcs12创建)。
  • 在Base64-PEM的解析过程中对多余的空格或者注释更加宽容,尤其是超出Base64区段的部分。
对KeyMaterial或TrustMaterial类型的自动检测。消费者不需要知道keystore是PKCS12还是JKS。他们只需要知道密码来解密私钥。

Not-Yet-Commons-SSL是在英属哥伦比亚信用联盟中心(Credit Union Central of British Columbia)开发的,并于2006年捐赠给Apache软件基金会。它现在正处于Apache孵化器中,希望很快在接下来的几个月成为Apache-Commons项目的一部分。

Dejan Bosanac就与Java的内建功能做了比较,写到:

如果你曾经使用过Java的SSL套接字连接,你可能会知道Java缺省支持它自己的JKS和PKCS12证书格式。对于那些需要使用 OpenSSL的人来说,通常建议把key和证书转化成PKCS12,然后使用JDK提供的 keytool命令导入到keystore。

虽然这对大多数应用程序来说算不了什么,但还是应该有一个更好的解决方案提供给那些非常依赖SSL的项目。 Not-Yet-Commons-SSL项目之所以叫这个名字是因为,它 还不是Apache的官方项目,它的目标在于简化Java和SSL的集成。

查看英文原文:Not-Yet-Commons-SSL Provides Powerful (and Free) SSL Capabilities

你可能感兴趣的:(Not-Yet-Commons-SSL提供强大(而且免费)的SSL功能)