如何跨更新保留Mac上的CAcerts密钥库?
Mac OS X在/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts中有CA密钥库。 这个密钥库似乎被每个Java更新覆盖,这非常烦人,因为我们有内部CA用于开发环境,测试……
有没有办法在Apple JSR中保留密钥库更改,现在,使用Snow Leo JSR3,还可以跨越单独的Java开发人员包(其JDK使用相同的密钥库)的更新?
[这是过时的信息 – 请参阅下面的答案10.6+]
/System/Library/Frameworks/JavaVM.framework/Home/
是/System/Library/Frameworks/JavaVM.framework/Home/
中的Versions/CurrentJDK/Home
的符号链接。 显然,这将随着新版本而改变。 使用完整路径(例如/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
),它不会在更新中更改。
以下参数可用于指定cacerts文件到java的位置:
-Djavax.net.ssl.trustStore= -Djavax.net.ssl.trustStorePassword=changeit
在java主目录(带有内部CA)中复制cacerts并将其放在主目录中的某个位置。 然后将完整路径放到cacerts文件位置作为上面的javax.net.ssl.trustStore属性的值。 该副本不会被Java更新覆盖。 默认密码为“changeit”。
这种方法的两个缺点是:
- 您的文件不会获得sdk中cacerts文件的任何更新。 如果证书颁发机构受到威胁,这主要是一个问题。
- 您需要自定义cacerts(构建工具,应用服务器等),需要指定这些参数。
在Mac OS X 10.6.8 Snow Leopard中似乎发生了变化。 现在/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts
是/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts
的符号链接,它不会如果我们很幸运,可以更新更新。
- Eclipse Mac OS X调试错误:“本机方法中的致命错误:JDWP没有传输初始化,jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197)”
- Java内部类访问和最佳实践
- java.lang.ClassNotFoundException:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
- 这个CORS处理程序安全吗?
- 有条件地inheritance自上课
- 在Eclipse项目中混合AspectJ和Scala
- Java中的目录扫描程序
- 单击JTextField中的图标并清除其内容
- SwingPropertyChangeSupport动态更新JTextArea