я впервые настраиваю SSL-сертификат на своей машине разработки (я не системный администратор - мне нужен SSL для работы с facebook). Я решил пойти с ngingx проксированием приложения ruby sinatra, ничего особенного.
Это ошибка, которую я получаю, когда Facebook пытается подключиться к моему HTTP-серверу. AFAIK nginx здесь виноват:
2015/11/26 15:42:03 [info] 42872#0: *3 SSL_do_handshake() failed (SSL: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca:SSL alert number 48) while SSL handshaking, client: 31.13.113.70, server: 0.0.0.0:4567
Вот что я сделал:
Установлен локально nginx и настроен так:
upstream server {
server 0.0.0.0:8080;
}
server {
listen 4567 default_server ssl;
server_name sandbox.thing.it;
ssl_certificate /Users/ngw/thing/server.crt;
ssl_certificate_key /Users/ngw/thing/server.key;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/cert/RapidSSL_CA_bundle.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;
ssl_prefer_server_ciphers On;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
location / {
proxy_pass http://server;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Перезапустили nginx и puma соответственно на портах 4567 и 8080.
Пошел в https://sandbox.thing.it, приложение ответило должным образом, соединение было зашифровано, и сертификат оказался правильным.
Зашел в Facebook и попытался зарегистрировать подписку на новую страницу (https://developers.facebook.com/docs/graph-api/webhooks/v2.2). Если бы ошибка сообщалась сверху (сбой SSL_do_handshake ()), когда Facebook пытался проверить мой URL-адрес обратного вызова
Любое предложение?