Tag: 证书

如何在ssl时忽略证书检查

我试图find一种方法来忽略证书检查时请求一个Https资源,到目前为止,我在互联网上find了一些有用的文章。 但是我仍然有一些问题。 请查看我的代码。 我只是不明白代码ServicePointManager.ServerCertificateValidationCallback是什么意思。 什么时候可以调用这个委托方法? 还有一个问题,我应该在哪个地方写这个代码? 在ServicePointManager.ServerCertificateValidationCallback Stream stream = request.GetRequestStream()之前执行ServicePointManager.ServerCertificateValidationCallback之前吗? 请帮助我,谢谢。 public HttpWebRequest GetRequest() { CookieContainer cookieContainer = new CookieContainer(); // Create a request to the server HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_remoteUrl); #region Set request parameters request.Method = _context.Request.HttpMethod; request.UserAgent = _context.Request.UserAgent; request.KeepAlive = true; request.CookieContainer = cookieContainer; request.PreAuthenticate = true; request.AllowAutoRedirect = false; #endregion […]

从PEM BASE64获取RSA私钥编码的私钥文件

我有一个私钥文件(PEM BASE64编码)。 我想用它来解密一些其他的数据。使用Java我试图读取文件并解码BASE64编码的数据…这是我试过的代码片段…. import java.io.*; import java.nio.ByteBuffer; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; import com.ibm.crypto.fips.provider.RSAPrivateKey; import com.ibm.misc.BASE64Decoder; public class GetPrivateKey { public static RSAPrivateKey get() throws Exception { File privateKeyFile = new File("privatekey.key"); byte[] encodedKey = new byte[(int) privateKeyFile.length()]; new FileInputStream(privateKeyFile).read(encodedKey); ByteBuffer keyBytes = new BASE64Decoder().decodeBufferToByteBuffer(encodedKey.toString()); PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(keyBytes.array()); KeyFactory kf = KeyFactory.getInstance("RSA", "IBMJCEFIPS"); RSAPrivateKey […]

如何在Android设备上安装可信CA证书?

我已经创build了自己的CA证书,现在我想将其安装在我的Android Froyo设备(HTC Desire Z)上,以便设备信任我的证书。 Android将CA证书存储在/system/etc/security/cacerts.bks Java密钥库中。 我将文件复制到我的电脑,使用portecle 1.5添加我的证书,并将其推回设备。 现在,Android似乎不会自动重新加载文件。 我已经阅读了几个博客文章,我需要重新启动设备。 这样做会导致文件被原来的文件覆盖。 我的下一个尝试是通过复制它并使用设置菜单中的相应选项从SD卡安装证书。 该设备告诉我,证书已经安装,但显然它不相信证书。 而且,当我试图将密钥库复制到我的电脑时,我仍然可以find原始的cacerts.bks 。 那么,在Android 2.2设备上将自己的根CA证书作为可信证书安装的正确方法是什么? 有没有办法做到这一点编程?

PKIXpathbuild立失败:无法find有效的证书path到请求的目标

我打电话给一些HTTPS的networking服务,下面的客户端: import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import java.net.HttpURLConnection; import java.net.URL; import javax.net.ssl.HttpsURLConnection; /** * Handles http and https connections. It sends XML request over http (or https) * to SOAP web service and receive the XML reply. * * @author mhewedy * @date 30.10.2010 */ public class HttpWSXmlClient […]

Java SecurityException:签名者信息不匹配

像往常一样重新编译我的类,并突然得到以下错误信息。 为什么? 我该如何解决? java.lang.SecurityException: class "Chinese_English_Dictionary"'s signer information does not match signer information of other classes in the same package at java.lang.ClassLoader.checkCerts(ClassLoader.java:776)

如何获得APK签名签名?

有没有办法检索用于签名APK的密钥的签名? 我用我的密钥库中的密钥签署了我的APK。 我怎样才能以编程方式检索它?

为什么在SSL握手期间java不发送客户端证书?

我试图连接到一个安全的web服务。 即使我的密钥库和信任库已经正确设置,我仍然握手失败。 经过几天的沮丧,不停地search,并询问周围的人,我发现唯一的问题是,javaselect不握手握手期间发送客户端证书到服务器。 特别: 服务器请求客户端证书(CN = RootCA) – 即“给我一个由根CA签名的证书” Java查看密钥库,只发现我的客户端证书由“SubCA”签名,而“SubCA”则由“RootCA”发布。 它没有费心去查看信任库…呃好吧,我猜 可悲的是,当我试图将“SubCA”证书添加到密钥库时,根本没有任何帮助。 我没有检查证书是否加载到密钥库中。 他们这样做,但KeyManager忽略除客户端之外的所有证书。 所有上述导致的事实,即java决定它没有任何证书满足服务器的请求,并发送什么都没有… tadaaa握手失败:-( 我的问题: 是否有可能以“破坏证书链”的方式将密钥库中的“SubCA”证书添加到密钥库中,以便KeyManager只加载客户端证书而忽略其他证书? (Chrome和opensslpipe理弄清楚,为什么不能java? – 请注意,“SubCA”证书总是作为受信任的权威机构单独提出,所以Chrome在握手期间显然正确地将其与客户端证书一起打包) 这是服务器端的一个正式的“configuration问题”吗? 服务器是第三方。 我希望服务器能够申请由“SubCA”机构签署的证书,因为这是他们提供给我们的。 我怀疑,这在Chrome和openssl中起作用的事实是因为它们“较less限制”,而java只是“靠本书”而失败。 我确实设法为此做了一个肮脏的解决方法,但我不是很高兴,所以如果有人能为我澄清这个问题,我会很高兴。

Eclipse Android插件中的“debugging证书过期”错误

我正在使用Eclipse的Android插件来build立一个项目,但我在控制台窗口中得到这个错误: [2010-02-03 10:31:14 – androidVNC]Error generating final archive: Debug certificate expired on 1/30/10 2:35 PM! 我该如何解决?

使用HttpClient通过HTTPS信任所有证书

最近在Https上发布了一个关于HttpClient的问题( 在这里find )。 我已经取得了一些进展,但是我遇到了新的问题。 和我最后一个问题一样,我似乎无法在任何地方find适合我的例子。 基本上,我希望我的客户端接受任何证书(因为我只是指向一台服务器),但我不断得到一个javax.net.ssl.SSLException: Not trusted server certificate exception. 所以这就是我所拥有的: public void connect() throws A_WHOLE_BUNCH_OF_EXCEPTIONS { HttpPost post = new HttpPost(new URI(PROD_URL)); post.setEntity(new StringEntity(BODY)); KeyStore trusted = KeyStore.getInstance("BKS"); trusted.load(null, "".toCharArray()); SSLSocketFactory sslf = new SSLSocketFactory(trusted); sslf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme ("https", sslf, 443)); SingleClientConnManager cm = new SingleClientConnManager(post.getParams(), schemeRegistry); HttpClient […]

如何使用openssl创build自签名证书?

我将https支持添加到embedded式Linux设备。 我试图通过以下步骤生成自签名证书: openssl req -new > cert.csr openssl rsa -in privkey.pem -out key.pem openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001 cat key.pem>>cert.pem 这工作,但我得到一些错误,例如,谷歌浏览器: 这可能不是你正在寻找的网站! 该网站的安全证书是不可信的! 我错过了什么吗? 这是build立自签名证书的正确方法吗?