我正在使用CLI工具来构建具有很酷上传功能的混合移动应用程序,因此我可以在设备上测试应用程序而无需通过应用程序商店(它是ionic-cli).但是,在我的公司,像许多其他公司一样,TLS请求使用公司自己的自定义CA证书重新签名,我在我的机器上有钥匙串(OS X).但是,nodejs不使用密钥链来获取其信任的CA列表.我不控制ionic-cli应用程序,所以我不能简单地将{ca:}属性传递给https模块.我还可以看到这是我无法控制的任何节点应用程序的问题.是否可以告诉nodejs信任CA?
我不确定这是属于信息安全还是任何其他交易所......
我在一个运行2或3个应用程序的系统中安装了一个java.
所有应用程序都使用相同的运行时.
有没有办法为ca证书指定不同的密钥库,而不是java_home/jre/lib/security中的密钥库.也就是说,是否可以选择指定一个"额外"密钥库,该密钥库被加载并添加到从java_home/jre/lib/security/cacerts加载的证书中?
我想避免的是每次升级框中的jdk时都必须重新导入我们的本地ca.
crypto/tls.Config.RootCAs 状态
// RootCAs defines the set of root certificate authorities
// that clients use when verifying server certificates.
// If RootCAs is nil, TLS uses the host's root CA set.
Run Code Online (Sandbox Code Playgroud)
在 Linux 上,“主机的根 CA 集”是从哪里获取的?我需要知道这一点才能全局添加另一个根 CA 来信任。
我的应用程序连接到 SSL Web 服务,该服务使用证书来验证其身份。最近,这个证书发生了变化,由于它不是由受信任的机构签署的,我的部分申请失败了。为了防止将来出现这种情况,该服务的建议是我应该开始信任现有证书的签名机构,而不是单个证书。
这如何在 Java 中实现?
目前,我正在使用 keytool 将他们提供的证书添加到密钥库中,并将其组合到 TrustManagerFactory 中,如下所示:
public static TrustManager[] getTrustManagers() throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
KeyStore tks = KeyStore.getInstance(KeyStore.getDefaultType());
tks.load(StarTrustManagerFactory.class.getResourceAsStream("webservice.ks"), "password".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(tks);
return tmf.getTrustManagers();
};
Run Code Online (Sandbox Code Playgroud)
有没有办法调整这种方法以返回TrustManager信任我拥有的证书的签名机构的a ?此外,如何从我拥有的证书中提取有关证书签署者的信息?
谢谢,丹。