Visual Studio 6.0을 사용하여 코딩 된 win32 파일 서버에서 작업하고 있습니다. SSL을 구성하고 2000 년에 다시 작동했지만 이후 사용되지 않았습니다.Openssl 초기화시 서버가 작동하지 않습니다.
이제 SSL (Openensl)을 사용하여 서버 등을 콘솔 앱으로 실행할 때 라이브러리 등을 업데이트하고 SSLv3 및 TLS로 서버를 작동하도록했습니다.
서버를 Windows 서비스로 실행하자마자 ssl 초기화 루틴이 오류 메시지없이 중단됩니다. 모든 슬픔의 원인이되는 코드는 다음과 같습니다. Windows 서비스, 기록 된 유일한 메시지로 실행
int SwiftSSL::Initialize()
{
SSLeay_add_ssl_algorithms();
SSL_load_error_strings();
ctx_ = SSL_CTX_new(SSLv23_server_method());
if(!ctx_) {
LogEvent("SSL_CTX is bad.");
return false;
}
LogEvent("Before using cert and private key file.");
if (SSL_CTX_use_certificate_file(ctx_, CERT_FILE, SSL_FILETYPE_PEM) == 1) {
LogEvent("SUCCESS SSL_CTX_use_certificate_file.");
}
else {
LogEvent("FAILED SSL_CTX_use_certificate_file.");
return false;
}
if (SSL_CTX_use_PrivateKey_file(ctx_, KEY_FILE, SSL_FILETYPE_PEM) == 0) {
LogEvent("Failed SSL_CTX_use_PrivateKey_file.");
return false;
}
else {
LogEvent("SUCCESSFUL SSL_CTX_use_PrivateKey_file.");
}
if (SSL_CTX_check_private_key(ctx_) == 0) {
ERR_print_errors_fp(stderr);
LogEvent("Failed SSL_CTX_check_private_key");
return false;
}
LogEvent("Successfully used cert and private key file.");
return true;
}
은 다음과 같습니다 를 "인증서 및 개인 키 파일을 사용하기 전에."
그 밖의 정보는 기록되지 않습니다. 즉, 내게는 SSL_CTX_use_certificate_file (ctx_, CERT_FILE, SSL_FILETYPE_PEM) 명령이 충돌하고 있음을 의미합니다.
하지만 같은 프로그램을 콘솔로 실행할 때 문제가없는 이유는 무엇입니까? 소스 (은 OpenSSL)에서 이벤트 ID (0)에 대한
설명을 찾을 수 없습니다 :
이것은 내가 이벤트 뷰어에서 볼 수있는 정보입니다. 로컬 컴퓨터에 원격 컴퓨터의 메시지를 표시하는 데 필요한 레지스트리 정보 나 메시지 DLL 파일이 없을 수 있습니다. 다음 정보는 이벤트의 일부입니다 : OPENSSL_Uplink (00341000,08) : 아니오 OPENSSL_Applink
아무 도움이됩니다.