Mam serwer, który będzie nasłuchiwał na HTTPS przy użyciu OpenSSL. W tym celu muszę dostarczyć certyfikat do użycia. Jednak obecna implementacja wykorzystuje nazwę pliku do dostarczenia do OpenSSL API.Odczytaj pliki certyfikatów z pamięci zamiast z pliku przy użyciu OpenSSL
Chcę, aby informacje o certyfikatach były odczytywane z pamięci, tak aby nie musiałem wysyłać otwarcia pliku certyfikatu. Próbowałem google, ale nie wymyśliłem żadnych opcji.
Czy jest to możliwe? Jeśli tak, jak mogę odczytać pliki certyfikatów z pamięci zamiast z pliku przy użyciu OpenSSL?
EDIT: Następujący tekst został przeniesiony z uwagi na to pytanie.
// CURRENT
void start_server()
{
const char *fileName = "cert_and_key.pem";
set_server_ssl_file(fileName);
}
set_server_ssl_file(const char *fileName)
{
//initialize context
SSL_CTX_use_certificate_file(CTX, pem, SSL_FILETYPE_PEM);
SSL_CTX_use_PrivateKey_file(CTX, pem, SSL_FILETYPE_PEM);
}
//REQUIRED
void start_server()
{
const char *cert = "--BEGIN CERTIFICATE--............";
const char *key = "--BEGIN RSA PRIVATE KEY--.......";
set_server_ssl_options(cert, key);
}
set_server_ssl_options(const char *cert, const char *key)
{
//IMPLEMENTATION REQUIRED
}
"Chcę, aby informacje o certy były odczytywane z pamięci, tak, że nie muszę wysyłać otwarcia pliku certyfikatu" - Czy możesz to wyjaśnić? Nie jestem pewien, co masz na myśli. Gdzie kod otrzymywałby certyfikat w pierwszej kolejności? –
Mam teraz pliki certyfikatów ze mną. Serwer musi z nich korzystać. Normalną praktyką jest udostępnienie OpenSSL nazwy pliku certyfikatu. OpenSSL zajmie się resztą rzeczy wewnętrznie. Ale nie mogę wysyłać plików certyfikatów bezpośrednio. Mógłbym MNIE mocno zakodować je w kodzie źródłowym. To jest wymaganie. Tak więc, przyglądałem się opcjom, w których mam certyfikat w buforze pamięci i w jakiś sposób sprawić, że OpenSSL używa tych informacji o certyfikacie. – Karthik
Czy możesz podać, co robisz z przykładowym kodem? Konteksty SSL certyfikatu można tworzyć z pamięci, ale byłoby to pomocne, gdybyś mógł po prostu udostępnić to, co chcesz osiągnąć za pomocą jakiegoś kodu. –