ngx http ssl module: клиентские сертификаты
enikesha
nginx-forum на nginx.us
Вт Мар 2 13:22:57 MSK 2010
Приветствую!
При использовании клиентских сертификатов, подписанных алгоритмом sha256WithRSAEncryption при попытке установки соединения nginx рвет его с ошибкой в логе:
SSL_do_handshake() failed (SSL: error:0D0C50A1:asn1 encoding routines:ASN1_item_verify:unknown message digest algorithm) while SSL handshaking
Где-то в интернете наткнулся на информацию, что OpenSSL при стандартной инициализации подключает не все алгоритмы, и нужно отдельно вызывать OpenSSL_add_all_algorithms(). Собственно, после этого все заработало:
--- nginx-0.8.31/src/event/ngx_event_openssl.c 2009-11-23 17:09:57.000000000 +0300
+++ nginx-my/src/event/ngx_event_openssl.c 2010-02-06 16:04:14.871090623 +0300
@@ -106,6 +106,8 @@
ENGINE_load_builtin_engines();
+ OpenSSL_add_all_algorithms();
+
ngx_ssl_connection_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
if (ngx_ssl_connection_index == -1) {
--- nginx-0.8.31/src/event/ngx_event_openssl.h 2009-11-11 13:59:07.000000000 +0300
+++ nginx-my/src/event/ngx_event_openssl.h 2010-02-06 16:00:43.691095715 +0300
@@ -15,6 +15,7 @@
#include
#include
#include
+#include
#define NGX_SSL_NAME "OpenSSL"
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,58969,58969#msg-58969
Подробная информация о списке рассылки nginx-ru