2011-08-01 78 views
1

我遇到了一個問題,即安卓(3.1和2.3.4版本)會拋出:Android有1024位證書的問題嗎?

javax.net.ssl.SSLPeerUnverifiedException: No peer certificate 

錯誤訪問具有Versign V3 1024位證書的RSS服務器(CN =威瑞信3級安全服務器CA-G2)。我可以使用Versign V3 2048位證書訪問不同的服務器,這很好。有誰知道Android是否與舊的1024位certficates有問題?

實際堆棧跟蹤看起來是這樣的:

08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260): Caused by: javax.net.ssl.SSLPeerUnverifiedException: No peer certificate 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:258) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:164) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:80) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:46) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:56) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:451) 
08-01 08:24:54.390: ERROR/DownloadRssFeedTask(1260):  ... 10 more 

回答

0

你應該看看這個線程:

1024-bit SSL certificates provider

看起來它只是太弱使用1024位SSL證書。我看了the code from apache harmony,但API看起來有點複雜(老實說一些字段在SSLImpl類以外被修改),我找不到更多的信息。

它看起來像最好的解決方案將是要求您的虛擬主機提供商的現代2048位x509證書。

問候, 斯特凡

+0

是的,我們一直在提升我們的證書爲2048位,但在這種情況下,特定服務器尚未升級。據我所知,1024位證書很薄弱,但這不應該成爲無效證書,因爲它們是來自已接受提供商的良好證書。 –

+0

在安全API中,我認爲不支持不安全協議是個不錯的選擇...... – Snicolas