2010-11-10 21 views
7

Python/Twisted programının, Internet Explorer'ın bir HTTPS sunucusuna SSL bağlantısını doğrulamak için kullandığı kök sertifikalar listesinden temiz bir şekilde yararlanmasının bir yolu var mı? Validate SSL certificates with Python'a verilen yanıtlar çok yararlıdır ancak örnek kod, Unix'e özgü dizini /etc/ssl/certs/*.pem okuyarak kök sertifikalarını alır ve bunun Windows eşdeğerinin ne olacağı açık değildir.Windows altında bir SSL sertifikasını doğrulamak için Python/Twisted programının doğru yolu nedir?

cevap

3

Windows eşdeğeri "Linux makinenizden" copy /etc/ssl/certs/*.pem "dir. Mac ve Windows, Twisted'in doğrudan desteklemediği ilgili sertifika mağazalarına ulaşmak için farklı yerel API'lere sahiptir. Doğal olarak OpenSSL sertifikalarını kullanmazlar ve kesinlikle 'PEM dosyalarının dizini' gibi bir düzeni düzgün bir şekilde yerleştirmezler. Güven köklerinizi PEM'ler olarak dışa aktarabilirseniz, bu şekilde doğrulamak için Twisted (iyi, gerçekten, OpenSSL aracılığıyla PyOpenSSL) isteyebilirsiniz.

Bunu gerçekten süper taşınabilir bir şekilde yapmakla ilgileniyorum, ama aslında hiç denemedim. Başlamak için bazı bağlantılar: SecureTransport reference, Microsoft Cryptography Functions.

SecureTransport başvurusunda, belgeler, SSLGetTrustedRoots'un kullanımdan kaldırıldığına işaret eder, ancak bu seçeneklerden biri olan SSLCopyTrustedRoots numaralı alternatifi belirtmez. Muhtemelen bir Mac ile başlamak istediğiniz API (PyObjC ile). Windows'da, bu fonksiyonların yığınında bir yerde dışında, muhtemelen istediğinizi yapan bir şey olduğunu ve belki de bunu ctypes ile diyebilirsiniz :) emin değilim.

İlgili konular