2011-01-09 4 views
3

PEM 파일에서 인증서와 키를 가져 와서 base64를 디코딩 한 다음 CertKey에 저장했습니다.Erlang에서 ssl을 사용하여 cert와 key를 전달합니다.

다음 연결을 열려면 다음 코드가 있습니다.

make_connection(Cert, Key) -> 
    Options = [{cert, Cert}, {key, Key}, {mode, binary}], 
    Timeout = 1000, 
    % {ok, Socket} replaced for debugging... 
    Socket = ssl:connect(?PUSH_SERVER_HOST, ?PUSH_SERVER_PORT, 
      Options, Timeout), 
    Socket. 

make_connection(Cert, Key) 반환 {error, {eoptions, {key, <<...>>}}}를 호출.

CertKey을 PEM 파일의 경로로 바꾸고 Options = [{certfile, ... keyfile ...}]을 입력하면 올바르게 작동하고 SSL 소켓이 만들어집니다.

그래서 certkey의 사용과 관련하여 혼잣말이 있습니까? 당신이 오히려 진보다, 당신의 Key으로 튜플을 사용하기로되어있는 것처럼

답변

1

ssl 응용 프로그램에서 ssl.erl 파일을 보면, 그것은 보인다 : 키의 유형이 지정된

validate_option(key, {KeyType, Value}) when is_binary(Value), 
         KeyType == rsa; 
         KeyType == dsa -> 
    {KeyType, Value}; 

. the documentation for the connect function에 버그가있는 것 같습니다. 여기에 바이너리 (der_bin())를 키로 사용한다고되어 있습니다.

관련 문제