2014-03-12 76 views
1

我們有一個tomcat webapp自簽名認證。當用戶點擊幫助按鈕然後下載pdf,在pc瀏覽器中它可以工作,但是在android中,它仍然是下載的時間。Android瀏覽器不從HTTPS自簽名認證下載文件

我在Spring控制器使用此代碼:

URL url = servletContext.getResource("/manual/Manual.pdf"); 

response.setHeader("Content-Disposition", "attachment; filename=\"Manual.pdf\""); 
response.setContentType("application/octect-stream"); 
response.setContentLength(url.getFile().length()); 


try 
{ 
     InputStream fis = url.openStream(); 
     OutputStream out = response.getOutputStream(); 
     IOUtils.copy(fis, out); 
     out.flush(); 

}catch(IOException ioe) 
{ 
     logger.error(ioe); 
} 

我們正在使用HTTPS和端口9443

我得到這個錯誤在logcat的android系統:

Application: android.process.media 
Tag: DownloadManager 
Text: Aborting request for download 23: 
     while trying to execute request: javax.net.ssl.SSLHandshakeException: 
     java.security.cert.CertPathValidatorException: 
     Trust anchor for certification path not found. 

謝謝您的幫助。

+1

您是否檢查您的Android設備是否有正確的時間設置?我遇到了這樣的SSL問題,並修復了我的設備時鐘。 –

+0

是的時間是正確的我使用模擬器和時間配置相同。服務器也有相同的時間。 – Josema

+1

那麼在錯誤中說「沒有找到證書路徑的信任錨點」。你可能想檢查你的認證路徑,這可能是一個服務器問題,而不是客戶端。時下的瀏覽器是很聰明的解決任何編碼問題和類似的東西。您可能有損壞的證書網址。 –

回答

1

原因是證書由於自動生成而出現問題。我們使用HTTP而不是HTTPS來下載並且工作:D