Назад | Перейти на главную страницу

Перенос SSL-сертификата на другой сервер Apache

Мы просто настраиваем новую машину Windows в качестве веб-сервера с Apache 2.2.19 с openssl установлен, и мы хотим переместить существующий веб-сайт, включая сертификат SSL (Verisign), из старых настроек, Linux, Apache 2.2.3.

Теперь, если я буду искать в Интернете, все, что я могу найти, это скопировать и вставить файлы сертификатов на новый сервер. Но когда я выполнил все настройки, Apache не запустился, и в журнале ошибок ничего не напечатано, только подсказка говорила Запрошенная операция не удалась.

Я пытался бежать httpd.exe -e debug и увидел, что он остановился на Loaded module ssl_module и эти строки напечатаны в error.log:

[Thu Aug 18 18:18:18 2011] [info] Init: Initialized OpenSSL library
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.

И из средства просмотра событий Windows:

Faulting application httpd.exe, version 2.2.19.0, time stamp 0x4dd6eda8, 
faulting module libapr-1.dll, version 1.4.5.0, time stamp 0x4dd6ed65, 
exception code 0xc0000005, fault offset 0x0000fc39, process id 0xe08, 
application start time 0x01cc5b07b33b8a60.

Я уверен, что правильно настроил путь к crt файлам, так как это то, что я получаю, если пытаюсь указать неправильный путь:

[Thu Aug 18 18:13:35 2011] [debug] mod_so.c(246): loaded module ssl_module
Syntax error on line 133 of C:/Apache2.2/conf/extra/httpd-ssl.conf: 
   SSLCACertificateFile: file 'C:/Apache2.2/conf/ssla/intermediate.crt' 
   does not exist or is empty

Apache отлично работает, если я использую самоподписанный сертификат. Что могло пойти не так?

ОБНОВИТЬ

Проверка с помощью команды openssl verify как @polynomial, предложенная в его ответе:

> openssl verify /path/to/file.pem
> error 20 at 0 depth lookup:unable to get local issuer certificate

openssl version -d показывает, что OPENSSLDIR: "/usr/local/ssl"

Делает OPENSSLDIR вызвали ошибку? Если да, то как мне это решить?

Это было решено.

Проблема заключалась в том, что файл парольной фразы был написан для Linux, поэтому он не запускался в Windows.

Мы также обновили файлы сертификатов, чтобы использовать окончания строк Windows, но я не уверен, повлиял ли это на какой-либо эффект.

Похоже, что сертификат, который у вас есть, был изменен, или установка OpenSSL в вашем окне Windows по какой-то причине не может понять его. Если вы попытаетесь проверить сертификат или извлечь из него информацию с помощью командной строки openssl в окне Windows, это сработает?

Некоторая информация о команде:

http://www.madboa.com/geek/openssl/#verify-standard

Конкретно проверьте:

openssl verify /path/to/file.pem
openssl x509 -text -in /path/to/cert.pem

SSL-сертификаты генерируются для определенного сервера по определенному адресу, вы не можете просто скопировать их с одного сервера на другой [даже если IP-адрес тот же]

Ваши пути и настройки, вероятно, верны [следовательно, ваш самоподписанный сертификат работает]. Что вам нужно сделать, так это создать новый CSR, связаться с поставщиком сертификатов SSL и получить новый сертификат, как правило, вам не придется платить за это.

-шон