4

Мой сервер был размещен в Bluehost (Apache), сертификат работал нормально. Теперь я использую Google Cloud для нескольких страниц в NodeJS на другом порту, используя proxy_pass. Я пытаюсь настроить SSL, но у меня проблемы. Я искал похожие вопросы, но по-прежнему показывает ту же ошибку. Я создал файл ключа после этого linkОшибка сертификата SSL Nginx SSL: ошибка: 0B080074: x509 (Google Cloud)

/var/log/nginx/error.log:

2015/07/08 10:47:20 [emerg] 2950#0: SL_CTX_use_PrivateKey_file("/etc/nginx/ssl/domain_com/domain_com.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

Когда я положил на консоли:

OpenSSL RSA -noout -модуль - в domain_com.key показывает мне это:

Modulus=D484DD1......512 characters in total......5A8F3DEF999005F 

OpenSSL x509 -noout -модуль -в SSL-bundle.crt:

Modulus=B1E3B0A.......512 characters in total......AFC79424BE139 

Это моя установка Nginx:

server { 
    listen 443; 
    server_name www.domain.com; 

    ssl_certificate /etc/nginx/ssl/domain_com/ssl-bundle.crt; 
    ssl_certificate_key /etc/nginx/ssl/domain_com/domain_com.key; 

    ssl on; 
    ssl_session_cache builtin:1000 shared:SSL:10m; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
    ssl_prefer_server_ciphers on; 

    access_log /var/log/nginx/domain_com.access.log; 

    location/{ 
     proxy_set_header       Host $host; 
     proxy_set_header X-Real-IP    $remote_addr; 
     proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto  $scheme; 
     proxy_pass        http://localhost:8086; 
     proxy_read_timeout      90; 
     proxy_redirect       http://localhost:8086 https://www.domain.com; 
    } 
} 

enter image description here


ответ

6

Проблема может возникнуть в случае неправильного порядка конкатенации. Вы пытались:

cat www_example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt 

Что выглядит правильно, но конкатенация обычно требуют, чтобы устранить дополнительную загрузку из корневого центра сертификации, поэтому Nginx создатель said:

Browsers usually store intermediate certificates which they receive and which are signed by trusted authorities, so actively used browsers may already have the required intermediate certificates and may not complain about a certificate sent without a chained bundle.

The official docs явно говорит:

If the server certificate and the bundle have been concatenated in the wrong order, nginx will fail to start and will display the error message:

SSL_CTX_use_PrivateKey_file(" ... /www.example.com.key") failed 
    (SSL: error:0B080074:x509 certificate routines: 
    X509_check_private_key:key values mismatch) 

because nginx has tried to use the private key with the bundle’s first certificate instead of the server certificate.

Так для решения проблемы попробуйте:

  1. Приложить www_example_com.crt к ssl_certificate Nginx конфигурации ключа

  2. Скачать последнюю версию Comodo CA сертификаты SHA2 от official web page и попробовать еще раз, чтобы сцепить сверток

+0

Я вижу, я попробую его –

+0

@wZVanG уверен, давайте разобраться сегодня. – Anatoly

+0

Я ценю ваш ответ. Что вы подразумеваете под «Attach» ?. Я очень новичок в настройке Ubuntu и серверов, пожалуйста, проверьте редактирование вопроса. Извините мой английский –

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