Я не могу настроить SSL. Я погуглил и нашел несколько решений, но ни одно из них не помогло мне. Мне нужна помощь, пожалуйста ...
Вот ошибка, которую я получаю, когда пытаюсь перезапустить nginx:
root@s17925268:~# service nginx restart
Restarting nginx: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/ssl/ssl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed
Мой сертификат от StartSSL действителен в течение 1 года.
Вот что я тестировал:
- Сертификат и закрытый ключ не имеют конечных пробелов.
- Я не использую файл server.key по умолчанию.
- Я проверил nginx.conf, и директивы указывают на правильный закрытый ключ и сертификат.
Я также проверил модуль, и я получил другой модуль для ключа и сертификата.
Спасибо за помощь. :)
modulus' and the
части общественного Экспонента в ключе и сертификате должны совпадать. Без сомнения файлы разные. Ключ создается для одного конкретного сертификата.Как только вы установили, что они не совпадают, у вас все еще остается проблема - что с этим делать. Часто сертификат может быть просто неправильно собран. Когда центр сертификации подписывает ваш сертификат, он отправляет вам блок, который выглядит примерно так:
они также отправят вам пакет (часто два сертификата), который представляет их полномочия по выдаче вам сертификата. это будет выглядеть примерно так
кроме того, к сожалению, они не будут так четко обозначены.
тогда обычной практикой является объединение всего этого в один файл - ваш сертификат, а затем сертификаты для подписи. Но поскольку их нелегко отличить, иногда случается, что кто-то случайно помещает их в другом порядке - подписывая сертификаты, затем последний сертификат - не замечая. В этом случае ваш сертификат не будет соответствовать вашему ключу.
Вы можете проверить, что, по мнению сертификата, представляет, запустив
Вверху вы должны увидеть «Тема:», а затем что-то похожее на ваши данные. Если вместо этого он выглядит как ваш CA, вероятно, ваш пакет находится в неправильном порядке; вы можете попробовать сделать резервную копию, а затем переместить последний сертификат в начало, надеясь, что это тот, который является вашим сертификатом.
Если это не сработает, возможно, вам просто придется перевыпустить сертификат. Когда я делаю CSR, мне нравится четко обозначать, для какого сервера он предназначен (вместо просто ssl.key или server.key), и делать его копию с датой в имени, например mydomain.20150306.key и т. Д. Таким образом. Эти пары закрытого и открытого ключей вряд ли будут перепутаны с другим набором.
источник
Проверьте MD5-хэш открытого ключа, чтобы убедиться, что он совпадает с тем, что находится в закрытом ключе.
источник
У меня была эта проблема, потому что я добавлял пакет и сертификат в неправильном порядке, поэтому, возможно, это могло помочь кому-то другому.
Раньше (что неверно):
После (что правильно)
И, пожалуйста, не забудьте обновить соответствующий conf (ssl_certificate теперь должен указывать на связанный crt) как
На странице руководства nginx :
источник
Если это произойдет, и вы используете Let's Encrypt / certbot, причина, скорее всего, в том, что вы использовали
chain.pem
вместоfullchain.pem
.Должно получиться примерно так:
См. Документацию по certbot «Где мои сертификаты?»
источник
У меня была такая же проблема, и я наконец решил ее, изменив порядок блоков pem в файле сертификата.
Блок сертификата нужно поместить в начало файла, затем промежуточные блоки, затем корневой блок.
Я понял эту проблему, сравнив проблемный файл сертификата с рабочим файлом сертификата.
источник
Мои 5 центов по проблеме:
У меня была такая же проблема. После примерно 1 часа присмотра я обнаружил, что вставил сертификат неправильно.
Если у вас возникла подобная ошибка, проверьте свой сертификат.
источник
В моем случае я хотел изменить сертификат SSL, потому что я сменил свой сервер, поэтому мне пришлось создать новый CSR с помощью этой команды:
Я отправил файл mysite.csr поставщику SSL-сертификата компании, и после того, как я получил сертификат crt, а затем перезапустил nginx, у меня появилась эта ошибка
После долгого расследования ошибка заключалась в том, что модуль из ключевого файла не совпадает с модулем из файла crt.
Итак, чтобы заставить его работать, я создал новый файл csr, но мне нужно изменить имя файла с помощью этой команды
Затем я получил новый файл crt от поставщика компании, перезапустил nginx, и он заработал.
источник
Это также может произойти, когда ваш центр сертификации выдает промежуточный сертификат.
Я столкнулся с этой проблемой (дважды) с nginx, и ни одно из решений в этом сообщении не объясняло проблему. Сообщение в блоге здесь, написанное милым джентльменом по имени Марко, подтвердило это, и я вставляю его сюда для всех, кто также сталкивается с тем, что я видел. https://medium.com/@mrkdsgn/steps-to-install-a-go-daddy-ssl-certificate-on-nginx-on-ubuntu-14-04-ff942b9fd7ff
В моем случае go-daddy был центром сертификации, и это зависит от того, как они выдают сертификат и промежуточные пакеты сертификатов.
Вот отрывок из сообщения в блоге Марко
При использовании Nginx, если ваш ЦС включал промежуточный сертификат, вы должны создать файл с единой цепочкой сертификатов, содержащий ваш сертификат и промежуточные сертификаты ЦС.
Вы можете использовать эту команду для создания комбинированного файла с именем example.com.chained.crt:
cat example.com.crt intermediate.crt > example.com.chained.crt
источник
В моем случае проблема заключалась в том, что я создавал сертификаты без ввода каких-либо данных в интерфейсе cli. Когда я регенерировал сертификаты и ввел все поля: город, штат и т. Д., Все стало нормально.
источник
Это случилось со мной, когда я объединил bundle.crt и основной сертификат. Причина в том, что я скопировал основной сертификат ниже bundle.crt. Должно быть наоборот
1 / основной сертификат 2 / bundle.crt
источник
Для Nginx:
openssl req -newkey rsa:2048 -nodes -keyout domain.com.key -out domain.com.csr
Файл
domain_com.crt
иdomain_com.ca-bundle
файлы SSL , затем скопируйте новый файл в вставкуdomain.com.chained.crt
.3: Добавьте файлы nginx:
ssl_certificate /home/user/domain_ssl/domain.com.chained.crt;
ssl_certificate_key /home/user/domain_ssl/domain.com.key;
Поздний перезапуск Nginx.
источник
Эта ошибка может произойти, если закрытый ключ сертификата (
ssl_certificate_key
например,.key
или.pem
файл) не соответствует общедоступному файлу сертификата (ssl_certificate
) в вашей конфигурации Nginx (отметьтеnginx.conf
или введитеsites-enabled/
). Убедитесь, что оба файла совпадают.Проверьте журналы ошибок Nginx для получения дополнительной информации (например
/var/log/nginx/error.log
).источник
В моем случае мне нужно объединить сертификаты моего домена.
И в конфигурационном файле /etc/nginx/nginx.conf
Перезапускаем сервис и все ок.
Шаг 2: https://www.namecheap.com/support/knowledgebase/article.aspx/9781/2238/nginx-ssl-error0b080074x509-certificate-routines-x509checkprivatekeykey-values-mismatch
источник