2011-12-21 89 views
1

我有一個證書文件,我想將其導入到flex應用程序中以與服務器建立安全套接字連接。但我得到一個例外,說ArgumentError: Error #2004: One of the parameters is invalid將Flex證書.crt文件轉換爲ByteArray for secureSocket類addBinaryChainBuildingCertificate方法

var urlLoader:URLLoader = new URLLoader(); 
var request:URLRequest = new URLRequest("xyz.crt"); 
urlLoader.addEventListener(Event.COMPLETE, doEvent); 
urlLoader.dataFormat = URLLoaderDataFormat.BINARY; 
urlLoader.load(request); 

private function doEvent(evt:Event):void { 
var ldr:URLLoader = evt.target as URLLoader; 
secureSocket.addEventListener(Event.CONNECT, onConnect) 
secureSocket.addEventListener(IOErrorEvent.IO_ERROR, onError); 
try { 
    secureSocket.addBinaryChainBuildingCertificate(ldr.data,true); 
    secureSocket.connect("192.168.2.100", 443); 
} catch (error:Error) { 
    Alert.show(error.toString()); 
} 

回答

0

對我來說,原因是因爲certificat是以PEM格式編碼的。 將其轉換爲DER格式後,它工作正常。

包含DER編碼的X.509數字證書的ByteArray對象。