2015-07-08 4 views
7

Я пытаюсь использовать сертификат, подписанный для другого сервера. У меня есть как закрытый ключ, так и сертификат.haproxy: несоответствия между закрытым ключом и сертификатом, загруженным из файла PEM

Мой PEM заказ файла:

subject=/C=***/L=*****/O=**********/CN=********* 
issuer=/C=***/O=*****Inc/CN=********Secure Server CA 
-----BEGIN CERTIFICATE----- 
-----END CERTIFICATE----- 
subject=/C=US/O=******** Inc/CN=********* SHA2 Secure Server CA 
issuer=/C=US/O=********* Inc/OU=*********/CN=******** Global Root CA 
-----BEGIN CERTIFICATE----- 
-----END CERTIFICATE----- 
subject=/C=US/O=********* Inc/OU=***********/CN=*********** Global Root CA 
issuer=/C=US/O=********* Inc/OU=************/CN=******** Global Root CA 
-----BEGIN CERTIFICATE----- 
-----END CERTIFICATE----- 
-----BEGIN RSA PRIVATE KEY----- 
-----END RSA PRIVATE KEY----- 

Когда я попытался развернуть его на мой HAProxy, я получил эту ошибку.

[ALERT] 188/141626 (2322) : parsing [/etc/haproxy/haproxy.cfg:32] : 'bind *:443' : inconsistencies between private key and certificate loaded from PEM file ................ 
[ALERT] 188/141626 (2322) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg 
[ALERT] 188/141626 (2322) : Proxy 'www-https': no SSL certificate specified for bind '*:443' at [/etc/haproxy/haproxy.cfg:32] (use 'crt'). 
[ALERT] 188/141626 (2322) : Fatal errors found in configuration. 
Errors in configuration file, check with haproxy check. 

И моя HAProxy версия:

HA-Proxy version 1.5.2 2014/07/12 
Copyright 2000-2014 Willy Tarreau <[email protected]> 

я могу начать свой HAProxy с самоподписными серт. Почему возникает эта несогласованность? Я уверен, что закрытый ключ принадлежит сертификату.

Я пытаюсь часами, но я не могу найти причину.

Пожалуйста, помогите! Спасибо!

+0

Недавно у меня была аналогичная проблема. Я обнаружил, что закрытый ключ и сертификат не совпадают, поэтому HA Proxy был прав, чтобы поднять эту ошибку. Я выполнил шаги отсюда, чтобы проверить соответствие: https://www.sslshopper.com/certificate-key-matcher.html Возможно, вы уже решили свою проблему, но я хотел опубликовать этот комментарий, поскольку он может быть полезен для другие люди. –

ответ

15

Неверный порядок сертификатов в вашем файле. Кажется, вы сначала помещаете промежуточный сертификат (то есть Secure Server CA), который, как ожидается, будет сертификатом сервера. Порядок сертификатов должен быть:

  • сертификат сервера
  • сервер секретный ключ (без пароля)
  • промежуточный сертификат 1
  • промежуточный сертификат 2

Это на самом деле не так важно, когда вы кладете секретный ключ. Тем не менее, порядок сертификатов строго нужно заказывать от листа к корню, то есть сначала сертификат сервера, затем промежуточный, затем он является родительским. В основном вы сначала ставите сертификат сервера, затем его подписывающий, затем его подписчик, ...

Для получения дополнительной информации см. the documentation.

+2

Нет проблем с первым закрытием секретного ключа. Это работает отлично. –

+4

В случае, если этот ответ не решит вашу проблему, вы можете попытаться удалить кодовую фразу из закрытого ключа. Это решило проблему для меня. Чтобы удалить пароль, попробуйте 'openssl rsa -in [PRIVATE_KEY_FILE] -out nopassphrase.key' – brunettdan

Смежные вопросы