[완료 :해결책첨부 필요하신분 보세요]openssl 개인키로드중 에러 질문입니다.
openssl RSA 개인키를 만들고 있는데
어제까지 개인키의 비밀번호 설정에 궁금증을 가지고 질문을 올렸는데
오늘은 개인키를 비밀번호를 설정을 하고 비밀번호로 입력을해도 로드가 안되는 문제 입니다.
FILE *privatekeyfile = fopen("keyfile.pem","wt");
PEM_write_PrivateKey(privatekeyfile, pkey, NULL ,NULL,0,NULL, NULL);
privKey = PEM_read_PrivateKey(privatekeyfile, NULL, 0,NULL);
이렇게 개인키를 만들고 불러오면 전혀 문제가 없이 로드가 가능하게 됩니다.
비밀번호가 안걸려 있으니까요
FILE *privatekeyfile = fopen("keyfile.pem","wt");
PEM_write_PrivateKey(privatekeyfile, pkey, EVP_des_ede3_cbc() ,NULL,0,NULL, "hello");
privkey = PEM_read_PrivateKey(privatekeyfile, NULL, 0,"hello");
이렇게 하면 안됩니다. 비밀번호가 틀렸다는 식인거 같은데
3064:error:0906B072:lib(9):func(107):reason(114):.\crypto\pem\pem_lib.c:481:
이런식으로 에러가 나옵니다 에러문은 검색을해봐도 안나오더라구요.
왜 같은 문자열을 넣었는데 입력을해도 안되는것일까요 이해가 전 되질 않네요..
이런비슷한 일하신분 안계신가요?
========================================
해결책
========================================
에러1 : 3064:error:0906B072:lib(9):func(107):reason(114):.\crypto\pem\pem_lib.c:481:
에러2 : 192:error:0906B072:PEM routines:PEM_get_EVP_CIPHER_INFO:unsupported encryption:
\crypto\pem\pem_lib.c:481:
에러 1의 경우 ERR_load_crypto_strings(); <- 실행하지 않아서 에러내용이 자세히 나오지 않음
함수에 명시적으로 ERR_load_crypto_strings(); 해주면 에러내용이 자세요 나옴
ERR_print_errors_fp (stderr); <-에러 출력
위의 에러는 개인키를 로드할때 비밀번호를(pass phrase) 맞게 넣어줘도 에러가 발생 키로드 안됨
OpenSSL_add_all_algorithms(); <---를 명시적으로 사전에 선언을 해주면
문제 없이 돌아감..
제생각에는 EVP_des_ede3_cbc() 이렇게 데스로 암호화해준 개인키를 로드하기 위해 암호 알고리즘이 필요? 해서 그런거 같아요
이걸로 2틀을 고생해서 저랑 비슷한 사유로 고생하시는분에게 힘이 되었으면 좋겠네요
댓글 달기