Tag: x509certificate

Java客户端到WCF服务互操作与相互证书 – 无法解析KeyInfo以validation签名

exception:MessageSecurityException:无法解析用于validation签名的KeyInfo:KeyInfo’SecurityKeyIdentifier 我必须设置一个WCF服务来接收来自Java客户端的SOAP调用,该客户端使用以下标头发送签名内容: … … … CN=XXXXXXXX 111122222 xxxxx xxxx 我尝试过设置以下绑定和行为: 但是我在服务器事件日志中遇到以下exception: ClientIdentity: ActivityId: MessageSecurityException: Cannot resolve KeyInfo for verifying signature: KeyInfo ‘SecurityKeyIdentifier ( IsReadOnly = False, Count = 1, Clause[0] = X509IssuerSerialKeyIdentifierClause(Issuer = ‘CN=XXXXXX) ) ‘, available tokens ‘SecurityTokenResolver ( TokenCount = 0, ) ”。 我们必须让签名validation工作,我们不可能改变java客户端发送的内容。

sun.security.x509.CertAndKeyGen和sun.security.pkcs.PKCS10 – 在JDK8中丢失。 实施建议

在JDK8中,类sun.security.x509.CertAndKeyGen不再存在。 还缺少sun.security.pkcs.PKCS10 。 在JDK7中他们存在。 什么可以替代这些类方法?

使用java的X509序列号

我需要从X509证书中获取一些数据。 如果我在Windows中打开证书文件,它会以此格式显示其序列号。 ex. 39 65 70 eb d8 9f 28 20 4e c2 a0 6b 98 48 31 0d 我试图使用java获取相同的数据。 加载后,我使用 x509.getSerialNumber(); and result is : 76292708057987193002565060032465481997 那么这两者有什么区别? 我希望结果为上一个。

当我尝试使用证书转换字符串时,会引发exception

我有一个applet,用于签署文档,并将文档,签名和证书发送到服务器端。 在服务器端portlet接收这3个文件,所有文件都以base64格式存储,但是当我尝试获取证书时它会引发exception java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104) applet边码: public static byte[] certificate; public static String getCertificateString() { String str = “”; byte[] result = null; result = Base64.encode(certificate); for (int i = 0; i < result.length; i++) { str += (char) (result[i]); } return str; } //initialization of certificate from […]

如何检查X509证书是否已在Java中被撤销?

我已经在这里搜索了所有地方,并在其他社区询问,我一直转发到讨论规范的oracle文档。 但是,该文档更多地涉及方法的命名和整体架构,并且实际上没有提出一种方法来讨论如何实际编写一些代码来检查x509证书是否被撤销。 也许这个只是我的头脑? 但我绝对会感激,如果有人可以用一个片段帮我解决问题,我一直在用一块墙撞在墙上大约一个星期。

将多个SSL证书固定添加到Android KeyStore不起作用。 (来自资源文件)

我想将多个证书从Resource文件添加到Android KeyStore: if (sslContext==null) { // loading CA from an InputStream InputStream is = AVApplication.getContext().getResources().openRawResource(R.raw.wildcard); String certificates = Converter.convertStreamToString(is); String certificateArray[] = certificates.split(“—–BEGIN CERTIFICATE—–“); for (int i = 1; i < certificateArray.length; i++) { certificateArray[i] = "—–BEGIN CERTIFICATE—–" + certificateArray[i]; //LogAV.d("cert:" + certificateArray[i]); // generate input stream for certificate factory InputStream stream = IOUtils.toInputStream(certificateArray[i]); // […]

generateCertificate()时的CertificateException

我正在开发我的Android应用程序。 我试图从我的证书文件流生成X509Certificate实例,但获取CertificateException ,这是我的简单代码: import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; … public class CertMgr { //my certification file ‘mycert.p12’ located in my app internal storage File certFile = GET_CERT(); X509Certificate cert = null; try { FileInputStream fis = new FileInputStream(certFile); BufferedInputStream bis = new BufferedInputStream(fis); CertificateFactory cf = CertificateFactory.getInstance(“X.509”); if(bis.available() > 0){ //I got CertificateException here, […]

无法解析证书:java.io.IOException:空输入X509Certificate

解析签名时,我收到下面给出的错误。 任何人都知道错误显示的原因? 注意: 使用相同的证书,我签署了自己的XML并validation哪个工作正常。 这意味着证书没有问题。 客户提供的签名文档无法validation。 错误: Exception in thread “main” javax.xml.crypto.MarshalException: Cannot create X509Certificate at org.jcp.xml.dsig.internal.dom.DOMX509Data.unmarshalX509Certificate(DOMX509Data.java:225) at org.jcp.xml.dsig.internal.dom.DOMX509Data.(DOMX509Data.java:116) at org.jcp.xml.dsig.internal.dom.DOMKeyInfo.(DOMKeyInfo.java:116) at org.jcp.xml.dsig.internal.dom.DOMXMLSignature.(DOMXMLSignature.java:150) at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshal(DOMXMLSignatureFactory.java:173) at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshalXMLSignature(DOMXMLSignatureFactory.java:137) at com.signing.ValidateSignedXML.main(ValidateSignedXML.java:126) Caused by: java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104) at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) at org.jcp.xml.dsig.internal.dom.DOMX509Data.unmarshalX509Certificate(DOMX509Data.java:223) … 6 more Caused by: java.io.IOException: Empty input at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:101) […]

带有X.509证书的Spring Security

我正在慢慢地试图配置Spring Security 3.0.0来保护应用程序。 我已将服务器(jetty)配置为需要客户端身份validation(使用智能卡)。 但是,我似乎无法正确获取applicationContext-security.xml和UserDetailsS​​ervice实现。 首先,从应用程序上下文文件: UserDetailsS​​ervice如下所示: public class AccountServiceImpl implements AccountService, UserDetailsService { private static final Log log = LogFactory.getLog(AccountServiceImpl.class); private AccountDao accountDao; @Autowired public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException, DataAccessException { log.debug(“called loadUserByUsername()”); System.out.println(“called loadByUsername()”); Account result = accountDao.getByEdpi(s); return result; } } 该应用程序有一个带有“登录”按钮的“首页”,因此访问该应用程序不需要任何forms的身份validation。 […]

OCSP吊销客户端证书

如果仅使用客户端的java.security.cert.X509Certificate,如何使用OCSP手动检查java中的证书撤销状态? 我看不清楚这样做的明确方法。 或者,我可以让tomcat自动为我做,你怎么知道你的解决方案是真的?