Tag: x509certificate

使用JNA获取本地计算机证书

我正在尝试从本地计算机Windows商店获取证书。 想要获得的是“证书(本地计算机) – >个人 – >证书”中的证书。 我使用此代码访问路径“证书 – 当前用户 – >个人 – >证书”中的证书 NativeLibrary crypt32 = NativeLibrary.getInstance(“Crypt32”); Function functionCertOpenSystemStore = crypt32.getFunction(“CertOpenSystemStoreA”); Object[] argsCertOpenSystemStore = new Object[] { 0, “MY”}; HANDLE h = (HANDLE) functionCertOpenSystemStore.invoke(HANDLE.class, argsCertOpenSystemStore); 有关如何从“证书(本地计算机) – >个人 – >证书”获取证书的任何想法? 我正在尝试使用JNA,因为我读取的不可能从Java访问本地机器证书。 我唯一得到的就是使用密钥库获取“当前用户”证书,如下所示: KeyStore ks = KeyStore.getInstance(“Windows-MY”, “SunMSCAPI”); 我也试过这个: KeyStore ks = KeyStore.getInstance(“Windows-ROOT”, “SunMSCAPI”); 有人能给我一个线索吗?

x509certificate certpathvalidation

我们的用例要求在PKIX设置上通过OCSPvalidation证书撤销。 我的出发点是这个相关问题的代码: 客户证书上的OCSP撤销 我在应用程序级别手动执行它,因为tomcat不支持它。 但是,我在构建certPath时遇到了一些麻烦,我想我缺少一些基本的理解。 首先,我尝试为传入的客户端x509Certificate创建certPath。 KeyStore存储已正确初始化,仅包含与客户端x509Certificate匹配的根证书。 编辑:我添加中间证书后得到了相同的结果。 X509CertSelector certSelector = new X509CertSelector(); certSelector.setSubject(x509certificate.getSubjectX500Principal()); PKIXParameters params = new PKIXBuilderParameters(store,certSelector); CertPathBuilder cpb = CertPathBuilder.getInstance(CertPathBuilder.getDefaultType()); CertPath certPath = cpb.build(params).getCertPath(); 但是,我在运行时遇到错误: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 可能会遗漏什么?

如何访问证书扩展(信息)值?

我有一个由变量访问的X509Certificate … 当我试图获取证书的详细信息时,我设法通过提供的function轻松获得CriticalExtensions值。 但是我想要达到的是无关键扩展,它存储在certifcate中并由Object ID#2.5.29.32表示 我想要访问的是政策标识号,如下图所示: http : //i.stack.imgur.com/xo8zX.png 我使用了以下function cert.getExtensionValue(“2.5.29.32”); 但它没有给我价值..任何人都可以告诉我我做错了什么? PS:我正在使用java.security.cert.X509Certificate;

通过Java访问Windows证书存储证书?

我正在寻找能够枚举和使用(签署)CurrentUser / My和LocalMachine / My中的证书的东西,但是我无法找到任何Windows证书库,只有Java自己的秘密商店。 这个链接很有前途,但我只能使用Java附带的东西。 我之前发现过这个问题 ,但它是从五年前开始的,这是计算机时代的很长一段时间。 谢谢!

以PEM格式转换私钥

我用Java代码创建了一个自签名证书并添加到KeyStore中。 现在,我想将创建的私钥和证书导出为PEM格式的文​​件。 没有任何第三方库,是否有可能实现这一目标? 下面是我用于创建自签名证书的代码。 public void createSelfSignedSSLCertificate() { try { final CertAndKeyGen keypair = new CertAndKeyGen(“RSA”, “SHA1WithRSA”, null); final X500Name x500Name = new X500Name(commonName, organizationalUnit, organization, city, state, country); keypair.generate(keysize); final PrivateKey privKey = keypair.getPrivateKey(); final X509Certificate[] chain = new X509Certificate[1]; chain[0] = keypair.getSelfCertificate(x500Name, new Date(), validity * 24 * 60 * 60); final String […]

CA PEM文件到jks tomcat truststore

我获得了由某个CA签署的p12公钥/私钥。 我有一个本地tomcat服务器,我正在进行开发工作。 我是安全新手,但我相信需要将CA公共证书放入我的tomcats信任库。 (我试图让x509证书与CAS合作) 如何让我的tomcat(和JVM)信任这个CA? 有没有办法从p12和我的tomcat信任库中获取CA公共证书? (我还从firefox导出了证书以获取CA的PEM文件) 我看到很多关于jsk的post,但不是相反。 我只需要CA. (我认为) :)

将密钥和SSL证书导入java密钥库

我有pem格式的证书文件和私钥文件。 是否可以使用Java代码将这些文件加载​​到Java密钥库中,使用JDK附带的默认库而不是第三方库。 当我尝试谷歌搜索时,我只能找到.der格式的文件,使用java代码导入到java密钥库中。 http://knowledge-oracle.blogspot.in/2009/02/import-private-key-and-certificate-in.html 是否可以通过java代码将pem格式的密钥和证书文件加载到java密钥库中,而无需转换为.der格式?

Java ftps连接,TrustManager解释(使用filezilla服务器)

我已经编写了一个程序(显然是从网上COPIED,并根据我的需要进行了一些修改!),使用apache ftp api进行文件下载/上传,并使用Filezilla服务器创建本地服务器。 一切都很好 。 问题是我没有得到我们必须创建信任管理器的部分。 码: FTPSClient ftpsClient= null; SSLContext sslContext = SSLContext.getInstance(protocol); TrustManager tm = new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { System.out.println(“getAcceptedIssuers——“); return null; } @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { // TODO Auto-generated method stub System.out.println(“checkClientTrusted——“); } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { […]

Java中是否有Java x509certificate ClientHello解析器?

我得到了一个字节包,它是SSL协议包的ClientHello 。 在我开始自己编写代码之前,通过遍历整个字节来获取每个字段值的代码,我想知道是否有任何Java对象(来自java.security)用于获取这些字节并解析数据,所以我将能够采取SSL协议字段并使用它们?

如何使用x509证书生成数字签名?

我们如何获取x509data和x509certificate标记并将其附加到由以下代码生成的xml中 String providerName = System.getProperty(“jsr105Provider”, “org.jcp.xml.dsig.internal.dom.XMLDSigRI”); XMLSignatureFactory fac = XMLSignatureFactory.getInstance(“DOM”, (Provider) Class.forName(providerName).newInstance()); Reference ref = fac.newReference(“”, fac.newDigestMethod(DigestMethod.SHA1, null), Collections.singletonList( fac.newTransform(Transform.ENVELOPED,(XMLStructure) null)), null, null); SignedInfo si = fac.newSignedInfo (fac.newCanonicalizationMethod (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS, (XMLStructure) null), fac.newSignatureMethod(SignatureMethod.RSA_SHA1, null), Collections.singletonList(ref)); KeyPairGenerator kpg = KeyPairGenerator.getInstance(“RSA”); kpg.initialize(512); KeyPair kp = kpg.generateKeyPair(); KeyInfoFactory kif = fac.getKeyInfoFactory(); KeyValue kv = kif.newKeyValue(kp.getPublic()); KeyInfo ki = kif.newKeyInfo(Collections.singletonList(kv)); […]