2011-02-19 21 views
11

Bir sunucunun sertifikasını doğrulamak için OpenSSL kullanıyorum. OpenSSL, yerleşik bir kök CA olmadan gönderildiği için, kök CA sertifikasını yazılımımızla birlikte dağıtmamız gerekir (OpenSSL'yi statik olarak bağlarız). Normalde, bunu yapmanın yolu PEM biçiminde bir sertifika dosyası dağıtmak ve SSL_CTX_load_verify_locations çağırmaktır. Ancak, bu işlev bir dosya/dizin yolu alır ve kök sertifika dosyalarını doğrudan dosya sisteminden okur. Sertifikayı dosya sistemimize kaydetmek yerine ikili kodumuza sabit kodlamayı gerçekten yapmak istiyoruz. Başka bir deyişle, bir dosya yolu yerine bir X509 * alan SSL_CTX_load_verify_locations gibi bir işleve sahip olmak isteriz.C++/OpenSSL: Kök CA'yı dosya yerine arabellekten kullan (SSL_CTX_load_verify_locations)

Böyle bir şey var mı? ya da kendimizi bir araya getirmenin kolay bir yolu var mı? Bununla ilgili fazla bilgi bulamıyoruz.

Önerileriniz için çok teşekkür ederim!

+0

SSL_CTX_load_verify_locations çağırmadan önce sabit kodlanmış kök sertifikayı diskte kaydetmeyi önleyen nedir? –

+0

Hiçbir şey onu engeller: Ancak, biz bir güvenlik uygulamasıyız ve kötü niyetli girişim hakkında endişe duyuyoruz. Özellikle, kök sertifika dosyamızın yerini bulmak ve üzerine yazmak çok kolay olursa, SSL'li işlemlerden herhangi birini engelleyebilirsiniz. Gerekirse bu rotaya gideceğiz, ancak kök sertifikayı ikiliye derleyebilmek harika olurdu. – DSII

+0

Kök CA’nızı bir dosyada tutmaktan daha sert bir şekilde kodlamak için daha güvenli bir yöntem değildir. –

cevap

18

fonksiyonu SSL_CTX_get_cert_store() doğrulama (X509_STORE *) için kullanılan sertifika deposuna ele almak için kullanılabilir ve (openssl/x509_vfy.h olarak) X509_STORE_add_cert() işlevi daha sonra bu sertifika deposuna direk sertifika eklemek için de kullanılabilir.

+0

Mükemmel! Çok teşekkür ederim; Bu harika çalışıyor. Tam olarak aradığım şey. Teşekkürler! – DSII

İlgili konular