2015-09-22 58 views
-1

我們正在爲我們的產品之一評估Azure SDK for Java的使用情況。所以我想知道下面的細節:Azure SDK for Java是否已準備好企業/生產?

  1. 我們做了0.7版的原型,這個版本是否穩定發佈和生產準備好了?爲什麼主要版本仍然是零?他們是測試版嗎?
  2. 我們的產品的最終用戶生成證書並提供給我們,我們將它們存儲在數據庫中,我無法找到獲取證書的API,如內存字符串/流。它要求將它存儲在一個文件中並從那裏加載。我可以避免將證書文件存儲到磁盤中嗎?
  3. 支持自簽名.PFX文件格式還是僅支持JKS文件?
+0

這個問題是廣泛的和不明確的,並且包含多個問題。 Java SDK已經有好幾年了,不是beta版(如果你需要評估它的實現,可以隨時查看[github上的sdk](https://github.com/Azure/azure-sdk-for-java))。如果您有關於操作證書的問題,請在單獨的問題中提出。不知道你在迴避磁盤存儲方面的問題(但是再次提出一個單獨的問題)。 –

+0

謝謝大家的意見,我現在糾正了一些錯別字。我將在認證部分發佈一個單獨的問題。我可以確定SDK已準備好生產嗎? –

回答

0

關於第一個問題,版本0.7 SDK是製造設備場景的穩定版本。 欲瞭解更多信息,請參閱https://azure.microsoft.com/en-us/documentation/articles/java-download-mac/,如果您有任何進一步詢問,請隨時告訴我們。

對於第二個問題 - 如何從Java中獲取證書形式的字符串。請檢查以下代碼,看看是否有幫助:

KeyStore ks = null; 
String certificateStr = "<cert string>"; 
String password = "<password>"; 
StringBufferInputStream sbis = null; 
try { 
    ks = KeyStore.getInstance("JKS"); 
    char[] passwordArray = password.toCharArray(); 
    sbis = new StringBufferInputStream(certificateStr); 
    ks.load(sbis, passwordArray); 
    sbis.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

對於第三個問題,Azure支持.PFX格式的證書文件。您可能想參考文檔https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure-ssl-certificate/https://azure.microsoft.com/en-us/documentation/articles/cloud-services-configure-ssl-certificate/瞭解如何爲Azure中的APP啓用HTTPS,以及如何爲Azure中的APP配置SSL。

最好的問候。發表評論2


示例代碼:

String keyStoreName = "<keyStoreName>"; 
String password = "<password>"; 
URL url = new URL("<url string>"); 
// Get KeyStore 
KeyStore ks = null; 
FileInputStream fis = null; 
try { 
    ks = KeyStore.getInstance("JKS"); 
    char[] passwordArray = password.toCharArray(); 
    fis = new java.io.FileInputStream(keyStoreName); 
    ks.load(fis, passwordArray); 
    fis.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} finally { 
    if (fis != null) { 
     fis.close(); 
    } 
} 
// Get SSLSocketFactory 
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509"); 
keyManagerFactory.init(ks, password.toCharArray()); 
SSLContext context = SSLContext.getInstance("TLS"); 
context.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom()); 
// Process GET Request 
SSLSocketFactory sslFactory = context.getSocketFactory(); 
HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); 
con.setSSLSocketFactory(sslFactory); 
con.setRequestMethod("GET"); 
con.addRequestProperty("x-ms-version", "2013-08-01"); 
InputStream responseStream = (InputStream) con.getContent(); 
String response = getStringFromInputStream(responseStream); 
responseStream.close(); 
+0

非常感謝您的評論。 1)很高興它是生產準備 - 版本號令人困惑。 –

+0

2)我能夠將字符串加載到KeyStore中,但是如何使用此KeyStore對象來創建com.microsoft.windowsazure.Configuration?我找不到這樣的API。 由於下面的方法只接受文件路徑,它迫使我將KeyStore存儲到磁盤並從那裏加載它。 配置myConfig = ManagementConfiguration.configure(新的URI(baseURL),subscriptionId,keyStoreFilePath,keyStorePassword); 是否有任何替代API? –

+0

3)下面的鏈接表示,「需要將PFX轉換爲JKS文件,因爲這是Java用於通過證書進行身份驗證的內容。」 http://azure.microsoft.com/en-us/blog/getting-started-with-the-azure-java-management-libraries/ \t 我一直在面對「證書未驗證」異常,當我使用SDK 0.7,這導致我問這個問題。 當我在上週發佈的最近版本的SDK 0.8中使用PFX時,我沒有從SDK中拋出此異常。我現在可以使用SDK 0.8。 –