Hatred's Log Place

DON'T PANIC!

Oct 2, 2008 - 2 minute read - linux

Ещё немного про организацию CA (центра сертификации)

Для начала использовал программу TinyCA умеет многое и почти всё что нужно, единственно что не умеет (или я не разобрался как) делать иерархию подписывания, т.е. сертификат cert1 подписан certca, а сертификат cert2 подписан сертификатом cert1… Плюс неожиданно обнаруженная бага, при которой при экспорте сертификата в pkcs#12 для импортирования его в Windows, последний не импортируется.

Написана прога на PyGTK.

Поиски навели на проект XCA. Написан на QT4, при компиляции потребовались небольшие шаманства с файлом lib/x509rev.cpp конкретно потребовалось сделать следующее (в формате diff):

--- x509rev.cpp.orig	2008-10-02 13:19:11.000000000 +1100
@@ -7,16 +7,21 @@
 
 #include "x509rev.h"
 
-#if OPENSSL_VERSION_NUMBER >= 0x00908000L
-#define X509_REVOKED_dup(x5r) <br/>
1. ASN1_dup_of (X509_REVOKED, i2d_X509_REVOKED, d2i_X509_REVOKED, x5r)
+//#if OPENSSL_VERSION_NUMBER >= 0x00908000L
+//#define X509_REVOKED_dup(x5r) <br/>
+//	ASN1_dup_of (X509_REVOKED, i2d_X509_REVOKED, d2i_X509_REVOKED, x5r)
+//
+//#else
+//#define X509_REVOKED_dup(x5r) (X509_REVOKED *)ASN1_dup( <br/>
+//	(int (*)(...))i2d_X509_REVOKED, <br/>
+//	(char *(*)(...))d2i_X509_REVOKED, <br/>
+//	(char *)x5r)
+//#endif
 
-#else
 #define X509_REVOKED_dup(x5r) (X509_REVOKED *)ASN1_dup( <br/>
1. (int (*)(...))i2d_X509_REVOKED, <br/>
2. (char *(*)(...))d2i_X509_REVOKED, <br/>
+	(i2d_of_void *)i2d_X509_REVOKED, <br/>
+	(d2i_of_void *)d2i_X509_REVOKED, <br/>
 	(char *)x5r)
-#endif
 
 x509rev::x509rev()
 {

У кого-то наверное запустится и без этого, ибо чует моё сердце здесь многое зависит от версии компилятора и/или библиотеки OpenSSL.

Ну краткий обзор… Да управление не такое удобное как у TinyCA, хотя, возможно, это дело привычки. Но, как показалось, более функциональное. И при этом умеет иерархию. Старый корневой сертификат и ключ заимпортировал, на основе их делаю подписи. Вся база хранится в зашифрованном виде в единственном файле (база данных, подозреваю, что возможны случаи поломки всего этого дела), но возможен дамп базы, и будут по каталогам разложены сертификаты, реквесты и т.д.

Пока юзаю и разбираюсь. Время покажет.