2017-02-14 14 views
0

Я получил эту ошибку на apache2 в моих журналах при наборе:
/etc/init.d/apache2 reloadReload неудачи - Ubuntu 15.04 - SSL PassPhrase инициализации

[Вс Фев 14 15: 53: 59,437078 2017] [SSL: Экстренно] [PID 15072] AH02580: Init: неверная фраза пароля для ключа www.XXX.com:443:00
[Вт 14 февраля 15: 53: 59.437128 2017] [ssl: emerg] [pid 15072] Ошибка библиотеки SSL: ошибка: 0D0680A8: ASN1 процедуры кодирования: ASN1_CHECK_TLEN: неправильный тег
[Вт 14 февраля 15: 53: 59,437137 2017] [SSL: Экстрен] [PID 15072] ошибка библиотеки SSL: ошибка: 0D08303A: ASN1 процедуры кодирования: ASN1_TEMPLATE_NOEXP_D2I: вложенная ASN1 ошибка
[Tue Feb 14 15: 53: 59.437143 2017] [ssl: emerg] [pid 15072] Библиотека SSL Ошибка: ошибка: 0D0680A8: asn1 процедуры кодирования: ASN1_CHECK_TLEN: неверный тег
[Вторник 14 февраля 15: 53: 59.437150 2017] [ssl: emerg] [pid 15072] Ошибка библиотеки SSL: ошибка: 0D07803A: процедуры кодировки asn1: ASN1_ITEM_EX_D2I: вложенная ошибка asn1 (тип = RSA)
[Вторник 14 февраля 15: 53: 59.437157 2017] [ssl: появление] [ pid 15072] Ошибка библиотеки SSL: ошибка: 04093004: процедуры rsa: OLD_RSA_PRIV_DECODE: RSA lib
[Вт 14 февраля 15: 53: 59.437163 2017] [ssl: emerg] [pid 15072] Ошибка библиотеки SSL: ошибка: 0D0680A8: кодировка asn1 подпрограммы: ASN1_CHECK_TLEN: неверный тег
[Вторник 14 февраля 15: 53: 59.437169 2017] [ssl: emerg] [pid 15072] Библиотека SSL Ошибка: ошибка: 0D07803A: asn1 процедуры кодирования: ASN1_ITEM_EX_D2I: вложенная ошибка asn1 (Тип = PKCS8_PRIV_KEY_INFO)
[Вт 14 февраля 15: 53: 59.437174 2017] [ssl: emerg] [pid 15072] AH02311: Фатальная ошибка, инициализирующая mod_ssl, выход. См. /var/log/apache2/error.log для получения дополнительной информации.
[Вт 14 февраля 15: 53: 59.437177 2017] [ssl: emerg] [pid 15072] AH02564: Не удалось настроить зашифрованный (?) Закрытый ключ www.XXX .com: 443: 0, проверьте /root/www.XXXX.com.key
AH00016: Конфигурация Ошибка

Пожалуйста, обратите внимание, что /etc/init.d/apache2 restart работает хорошо.

Я создал свой ключ на сервере с помощью:
genrsa -des3 -out www.XXXX.com 2048 + пароль

Я создал ЧСР с помощью:
req -new -key la_cle -out the_file

конфигурации сайта по умолчанию является 000-default.conf и по умолчанию -ssl.conf Файлы:

<Directory /var/www/html/> 
    Order allow,deny 
    Deny from all 
    Require all granted 
</Directory> 

# The ServerName directive sets the request scheme, hostname and port that 
# the server uses to identify itself. This is used when creating 
# redirection URLs. In the context of virtual hosts, the ServerName 
# specifies what hostname must appear in the request's Host: header to 
# match this virtual host. For the default virtual host (this file) this 
# value is not decisive as it is used as a last resort host regardless. 
# However, you must set it for any further virtual host explicitly. 
#ServerName www.example.com 

ServerAdmin [email protected] 
DocumentRoot /var/www/html 

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
# error, crit, alert, emerg. 
# It is also possible to configure the loglevel for particular 
# modules, e.g. 
#LogLevel info ssl:warn 

ErrorLog ${APACHE_LOG_DIR}/error.log 
CustomLog ${APACHE_LOG_DIR}/access.log combined 

# For most configuration files from conf-available/, which are 
# enabled or disabled at a global level, it is possible to 
# include a line for only one particular virtual host. For example the 
# following line enables the CGI configuration for this host only 
# after it has been globally disabled with "a2disconf". 
#Include conf-available/serve-cgi-bin.conf 

# ВИМ: синтаксис = Апач Ts = 4 SW = 4 петли = 4 стерад ноет

ServerAdmin [email protected] 

    DocumentRoot /var/www/html 
    ServerName www.XXXX.com 
    SSLEngine on 
    SSLCertificateFile /root/www.XXXX.com.crt 
    SSLCertificateKeyFile /root/www.XXXX.com.key 
    SSLCertificateChainFile /root/inter.www.XXXX.com.crt 
    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
    # error, crit, alert, emerg. 
    # It is also possible to configure the loglevel for particular 
    # modules, e.g. 
    #LogLevel info ssl:warn 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

    # For most configuration files from conf-available/, which are 
    # enabled or disabled at a global level, it is possible to 
    # include a line for only one particular virtual host. For example the 
    # following line enables the CGI configuration for this host only 
    # after it has been globally disabled with "a2disconf". 
    #Include conf-available/serve-cgi-bin.conf 

    # SSL Engine Switch: 
    # Enable/Disable SSL for this virtual host. 
    SSLEngine on 

    # A self-signed (snakeoil) certificate can be created by installing 
    # the ssl-cert package. See 
    # /usr/share/doc/apache2/README.Debian.gz for more info. 
    # If both key and certificate are stored in the same file, only the 
    # SSLCertificateFile directive is needed. 
    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem 
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key 

    # Server Certificate Chain: 
    # Point SSLCertificateChainFile at a file containing the 
    # concatenation of PEM encoded CA certificates which form the 
    # certificate chain for the server certificate. Alternatively 
    # the referenced file can be the same as SSLCertificateFile 
    # when the CA certificates are directly appended to the server 
    # certificate for convinience. 
    #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt 

    # Certificate Authority (CA): 
    # Set the CA certificate verification path where to find CA 
    # certificates for client authentication or alternatively one 
    # huge file containing all of them (file must be PEM encoded) 
    # Note: Inside SSLCACertificatePath you need hash symlinks 
    #  to point to the certificate files. Use the provided 
    #  Makefile to update the hash symlinks after changes. 
    #SSLCACertificatePath /etc/ssl/certs/ 
    #SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt 

    # Certificate Revocation Lists (CRL): 
    # Set the CA revocation path where to find CA CRLs for client 
    # authentication or alternatively one huge file containing all 
    # of them (file must be PEM encoded) 
    # Note: Inside SSLCARevocationPath you need hash symlinks 
    #  to point to the certificate files. Use the provided 
    #  Makefile to update the hash symlinks after changes. 
    #SSLCARevocationPath /etc/apache2/ssl.crl/ 
    #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl 

    # Client Authentication (Type): 
    # Client certificate verification type and depth. Types are 
    # none, optional, require and optional_no_ca. Depth is a 
    # number which specifies how deeply to verify the certificate 
    # issuer chain before deciding the certificate is not valid. 
    #SSLVerifyClient require 
    #SSLVerifyDepth 10 

    # SSL Engine Options: 
    # Set various options for the SSL engine. 
    # o FakeBasicAuth: 
    # Translate the client X.509 into a Basic Authorisation. This means that 
    # the standard Auth/DBMAuth methods can be used for access control. The 
    # user name is the `one line' version of the client's X.509 certificate. 
    # Note that no password is obtained from the user. Every entry in the user 
    # file needs this password: `xxj31ZMTZzkVA'. 
    # o ExportCertData: 
    # This exports two additional environment variables: SSL_CLIENT_CERT and 
    # SSL_SERVER_CERT. These contain the PEM-encoded certificates of the 
    # server (always existing) and the client (only existing when client 
    # authentication is used). This can be used to import the certificates 
    # into CGI scripts. 
    # o StdEnvVars: 
    # This exports the standard SSL/TLS related `SSL_*' environment variables. 
    # Per default this exportation is switched off for performance reasons, 
    # because the extraction step is an expensive operation and is usually 
    # useless for serving static content. So one usually enables the 
    # exportation for CGI and SSI requests only. 
    # o OptRenegotiate: 
    # This enables optimized SSL connection renegotiation handling when SSL 
    # directives are used in per-directory context. 
    #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire 
    <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
      SSLOptions +StdEnvVars 
    </FilesMatch> 
    <Directory /usr/lib/cgi-bin> 
      SSLOptions +StdEnvVars 
    </Directory> 

    # SSL Protocol Adjustments: 
    # The safe and default but still SSL/TLS standard compliant shutdown 
    # approach is that mod_ssl sends the close notify alert but doesn't wait for 
    # the close notify alert from client. When you need a different shutdown 
    # approach you can use one of the following variables: 
    # o ssl-unclean-shutdown: 
    # This forces an unclean shutdown when the connection is closed, i.e. no 
    # SSL close notify alert is send or allowed to received. This violates 
    # the SSL/TLS standard but is needed for some brain-dead browsers. Use 
    # this when you receive I/O errors because of the standard approach where 
    # mod_ssl sends the close notify alert. 
    # o ssl-accurate-shutdown: 
    # This forces an accurate shutdown when the connection is closed, i.e. a 
    # SSL close notify alert is send and mod_ssl waits for the close notify 
    # alert of the client. This is 100% SSL/TLS standard compliant, but in 
    # practice often causes hanging connections with brain-dead browsers. Use 
    # this only for browsers where you know that their SSL implementation 
    # works correctly. 
    # Notice: Most problems of broken clients are also related to the HTTP 
    # keep-alive facility, so you usually additionally want to disable 
    # keep-alive for those clients, too. Use variable "nokeepalive" for this. 
    # Similarly, one has to force some clients to use HTTP/1.0 to workaround 
    # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and 
    # "force-response-1.0" for this. 
    BrowserMatch "MSIE [2-6]" \ 
      nokeepalive ssl-unclean-shutdown \ 
      downgrade-1.0 force-response-1.0 
    # MSIE 7 and newer should be able to use keepalive 
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown 

</VirtualHost> 

# ВИМ: синтаксис = Апач Ts = 4 SW = 4 sts = 4 sr noet

В apache2.conf Я сделал сценарий с паролем SSLPassPhraseDialog exec:/root/key-pem.

Не могу понять, почему это не работает.

+1

Повторите попытку и на английском языке. – KeyWeeUsr

+1

Я любезно попробовал перевести его для вас: на следующем посту, пожалуйста, подумайте об использовании английского языка, иначе люди даже не будут читать ваши вопросы. – Kardux

+0

SSLPassPhraseDialog должен быть путь к программе, которая должна возвращать фразу для защищенного ключа на stdout. Вместо этого вы просто используете защищенный ключ как аргумент, который не будет работать, и вы получите ошибку. Подробнее [прочитайте документацию] (https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#sslpassphrasedialog). –

ответ

0

Извините за французскую часть. Я не думаю, что проблема исходит из моего сценария, который я передаю sslpassdialogphrase, потому что, если я это удалю, и я набрал пароль вручную, он все еще не работает. Кроме того, у меня есть конфигурация на другом сервере, который делает то же самое, и он работает. Проблема всегда одна и та же. На странице www.xxxx.com.key есть несоответствие, и я не могу понять, почему. Я попытался создать свой собственный сертификат, и он работает. Если бы у меня была такая же проблема с моим самоподписанным сертификатом, то, возможно, я бы ошибся фразой раньше, но похоже, что я этого не сделал.