Я только что купил SSL-сертификат у Go Daddy.
Отличная цена, но, похоже, у нее есть недостаток.
Кажется, для корректной работы в браузере must требуется bundle.crt.
Я еще не совсем уверен, что это такое, насколько я понимаю, это промежуточный сертификат от центра сертификации. Поправьте меня если я ошибаюсь
Так что в моем программном обеспечении у меня есть openssl
SSL_CTX_set_default_passwd_cb(SSL_ctx, pem_passwd_cb);
SSL_CTX_use_PrivateKey_file(SSL_ctx, _private_key, SSL_FILETYPE_PEM);
SSL_CTX_use_certificate_file(SSL_ctx, _certificate, SSL_FILETYPE_PEM);
SSL_CTX_use_certificate_chain_file(SSL_ctx, "./ssl_key/bundle.pem");
SSL_CTX_set_session_cache_mode(SSL_ctx,SSL_SESS_CACHE_SERVER|SSL_SESS_CACHE_NO_INTERNAL);
SSL_CTX_set_quiet_shutdown(SSL_ctx, 1);
Я получаю ошибку:
Вы не запустили init правильно или произошла ошибка.
С последними сертификатами (geotrust) мне не нужен промежуточный комплект, я действительно потерян здесь.
Поскольку SSL_CTX_use_certificate_chain_file принимает только файлы PEM, я преобразовал файл bundle.crt в PEM с использованием openssl.
Есть идеи?
Спасибо!
РЕДАКТИРОВАТЬ 1:
По-видимому, промежуточный сертификат должен находиться в папке / etc / ssl / certs.
Я положил каждый промежуточный сертификат от go-папы в эту папку, и до сих пор не повезло ...
Я удалил строку
SSL_CTX_use_certificate_chain_file(SSL_ctx, "./ssl_key/bundle.pem");
Что мне здесь не пригодится ...