Apache Версия 2.0 Сервера HTTP
мудрый человек не дает правильные ответы, он излагает правильные вопросы.
-- Клод Леви-Стросс
эта глава - собрание часто задаваемых вопросов (ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ) и соответствующие ответы после популярной традиции USENET. Большинство этих вопросов произошло на Телеконференции
comp.infosystems.www.servers.unix
или Список адресатов Поддержки mod_ssl
modssl-users@modssl.org
. они забраны в этом месте, чтобы избежать отвечать на те же самые вопросы много раз.
пожалуйста прочитайте эту главу по крайней мере однажды, устанавливая mod_ssl или по крайней мере ищите вашу проблему здесь перед передачей сообщения о проблеме автору.
mod_ssl v1 пакет был первоначально создан в апреле 1998 Ralf S. Engelschall через перенесение Ben Laurie 's Apache-SSL 1.17 источника исправляют для Apacheа 1.2.6 к Apacheу 1.3b6. Из-за конфликтов с развитием Бена Лори периодически повторят это, тогда был повторно собран на пустом месте для Apacheа 1.3.0, сливая старый mod_ssl 1.x с более новыми Apacheскими-SSL 1.18. С этого момента mod_ssl жил его собственной жизнью как mod_ssl v2. Первая публично выпущенная версия была mod_ssl 2.0.0 с 10-ого августа 1998.
после того, как американские экспортные ограничения на шифровальное программное обеспечение были ослаблены,
mod_ssl
стал частью Apacheского Сервера HTTP с выпуском Apacheского httpd 2.
сначала, позвольте нам объяснять какой Wassenaar и договоренность относительно Экспортных Средств управления для Обычного Оружия и Товаров Двойного использования и Технологий : Это - международный режим, установленный в 1995, управлять торговлей в обычном оружии и товарах двойного использования и технологии. Это заменяло предыдущее CoCom режим. Дальнейшие детали и относительно Договоренности и относительно ее подписавшихся доступны в http://www.wassenaar.org/ .
короче говоря, цель Договоренности Wassenaar состоит в том, чтобы предотвратить создавание военных способностей, которые угрожают региональной и международной безопасности и стабильности. Договоренность Wassenaar управляет экспортом криптографии как хорошее двойное использование, то есть, кое-что, что имеет и военные и гражданские заявления. Однако, Договоренность Wassenaar также обеспечивает освобождение от экспортных средств управления для программного обеспечения рынка товаров массового производства и свободного программного обеспечения.
в текущем Wassenaar
список Двойных Товаров Использования и Технологий И Боеприпасов
, под
ОБЩЕЕ ПРИМЕЧАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ (GSN)
это говорит
Списки не управляют "программным обеспечением", которое является также: 1. [...] 2. "в общественной области".
и под
ОПРЕДЕЛЕНИЯ СРОКОВ, ИСПОЛЬЗУЕМЫХ В ЭТИХ СПИСКАХ
мы находим
в общественной области
определенный как
"технология" или "программное обеспечение", которое было сделано доступный без ограничений на его дальнейшее распространение. Отметьте: ограничения Авторского права не удаляют "технологию" или "программное обеспечение" от того, чтобы быть "в общественной области".
Так, и mod_ssl и OpenSSL
в общественной области
в целях Договоренности Wassenaar и
список Двойных Товаров Использования и Технологий И Списка Боеприпасов
, и таким образом не затронутый в соответствии с его условиями.
ошибки, типа "
mod_ssl: Child could not open SSLMutex lockfile /opt/apache/logs/ssl_mutex.18332 (System error follows) [...] System: Permission denied (errno: 13)
"обычно вызываются в соответствии с чрезмерно ограничительными разрешениями на
родитель
справочники. Удостоверьтесь что все родительские справочники (здесь
/opt
,
/opt/apache
и
/opt/apache/logs
) имеют набор x-bit для, в минимуме, UID, под которым бегут дети Апача (см.
User
директива).
шифровальное программное обеспечение нуждается в источнике непредсказуемых данных, чтобы работать правильно. Операционные системы многого открытого источника обеспечивают "устройство хаотичности", которое удовлетворяет этой цели (обычно называемый
/dev/random
). На других системах, заявления должны отобрать Псевдо Случайный Генератор Числа OpenSSL (PRNG) вручную с соответствующими данными перед производством ключей или выполнения общественного ключевого шифрования. На версию 0.9.5, функции OpenSSL, которые нуждаются в хаотичности сообщить об ошибке, если PRNG не был отобран по крайней мере с 128 битами хаотичности.
предотвращать эту ошибку,
mod_ssl
должен обеспечить достаточно энтропии к PRNG, чтобы позволить этому работать правильно. Это может быть сделано через
SSLRandomSeed
директивы.
SSL_XXX
variables not available to my CGI & SSI scripts?
да. HTTP и HTTPS используют различные порты сервера (HTTP связывает, чтобы держать в строевой стойке 80, HTTPS, чтобы держать в строевой стойке 443), таким образом нет никакого прямого конфликта между ними. Вы можете или управлять двумя отдельными случаями сервера, обязанными в эти порты, или использовать изящное действительное средство оказания гостеприимства Апача, чтобы создать два действительных сервера по одному случаю Apacheа - отвечающий запрос на порту 80 и разговоре HTTP и другие отвечающие запросы на порту 443 разговора HTTPS.
Вы можете управлять HTTPS на любом порту, но стандарты определяют порт 443, который является, где любой послушный браузер HTTPS будет смотреть по умолчанию. Вы можете вынудить ваш браузер наблюдать различный порт, определяя это в URL как это (для порта 666):
https://secure.server.dom:666/
в то время как Вы обычно только используете
$ telnet localhost 80
GET / HTTP/1.0
для простого испытания Apacheа через HTTP, это не настолько легко для HTTPS из-за протокола SSL между TCP и HTTP. С помощью Опенссла
s_client
команда, однако, Вы можете сделать подобный чек на HTTPS:
$ openssl s_client -connect localhost:443 -state -debug
GET / HTTP/1.0
перед фактическим ответом HTTP Вы получите подробную информацию о рукопожатии SSL. Для более общего клиента линии команды, который непосредственно понимает и HTTP и HTTPS, может выполнить, ПОЛУЧАЮТ и ОБЪЯВЛЯЮТ операции, может использовать полномочие, диапазоны байта поддержек, и т.д. Вы должны взглянуть на остроту cURL инструмент. Используя это, Вы можете проверить, что Apache отвечает правильно на портах 80 и 443 следующим образом:
$ curl http://localhost/
$ curl https://localhost/
поскольку Вы соединились с HTTP с портом HTTPS, то есть Вы использовали URL формы "
http://
"вместо"
https://
". Это также случается наоборот, когда Вы соединяетесь через HTTPS с портом HTTP, то есть когда Вы пробуете использовать"
https://
"на сервере, который не поддерживает SSL (на этом порту). Удостоверьтесь, что Вы соединяетесь с действительным сервером, который поддерживает SSL, который является вероятно IP, связанным с вашим hostname, не localhost (127.0.0.1).
это может случиться по различным причинам. Самые общие ошибки включают стартового Apacheа с только
apachectl start
(или
httpd
) вместо
apachectl startssl
(или
httpd -DSSL
). Ваша конфигурация может также быть неправильной. Пожалуйста удостоверьтесь что ваш
Listen
директивы соответствуют вашему
<VirtualHost>
директивы. Если все остальное терпит неудачу, пожалуйста начните заново, используя конфигурацию по умолчанию, обеспеченную
mod_ssl
.
SSL_XXX
variables not available to my CGI & SSI scripts?
пожалуйста удостоверьтесь, что Вы имеете "
SSLOptions +StdEnvVars
"позволенный для контекста ваших запросов CGI/SSI.
обычно, чтобы переключить между HTTP и HTTPS, Вы должны использовать полностью-компетентный, осуществляет гиперссылку (потому что Вы должны изменить схему URL). Используя
mod_rewrite
однако, Вы можете управлять родственником, осуществляет гиперссылку, достигать того же самого эффекта.
RewriteEngine on
RewriteRule ^/(.*):SSL$ https://%{SERVER_NAME}/$1 [R,L]
RewriteRule ^/(.*):NOSSL$ http://%{SERVER_NAME}/$1 [R,L]
это переписывает ruleset, позволяет Вам использовать, осуществляет гиперссылку из формы
<a href="document.html:SSL">
, чтобы переключить к HTTPS в относительную связь.
getca
or
getverisign
programs mentioned by Verisign, for installing my Verisign certificate?
частный ключевой файл RSA - цифровой файл, который Вы можете использовать, чтобы расшифровать сообщения, посланные Вам. Это имеет общественный компонент, который Вы распределяете (через ваш файл Свидетельства), который позволяет людям зашифровать те сообщения к Вам.
Свидетельство, Подписывая Запрос (CSR) - цифровой файл, который содержит ваш общественный ключ и ваше название. Вы посылаете CSR Удостоверению Власти (Калифорния), кто преобразует это в реальное Свидетельство, подписывая это.
Свидетельство содержит ваш общественный ключ RSA, ваше название, название Калифорнии, и в цифровой форме подписано Калифорнией. Браузеры, которые знают Калифорнию, могут проверить подпись на том Свидетельстве, таким образом получая ваш общественный ключ RSA. Это позволяет им послать сообщения, которые только Вы можете расшифровать.
см. Introduction глава для общего описания протокола SSL.
да. Вообще, стартовый Apache с
mod_ssl
встроенный точно так же как начинает Apacheа без этого. Однако, если Вы будете иметь passphrase на вашем частном ключевом файле SSL, то диалог запуска выскочит, который просит, чтобы Вы вошли во фразу прохода.
необходимость вручную входить в passphrase, начиная сервер может быть проблематичной - например, начиная сервер с подлинников ботинка системы. В этом случае, Вы можете следовать за шагами below удалять passphrase от вашего частного ключа.
PATH
.
server.key
и
server.crt
файлы:
$ openssl req -new -x509 -nodes -out server.crt -keyout server.key
httpd.conf
файл:
SSLCertificateFile/path/to/this/server.crt SSLCertificateKeyFile/path/to/this/server.key
server.key
делает
нет
иметь любой passphrase. Чтобы добавлять passphrase к ключу, Вы должны управлять следующим команда, и вступает & проверите passphrase согласно просьбе.
$ openssl rsa -des3 -in server.key -out server.key.new
$ mv server.key.new server.key
server.key
файл, и passphrase Вы вступили, в безопасное местоположение.
вот - постепенное описание:
PATH
.
$ openssl genrsa -des3 -out server.key 1024
server.key
файл и фраза прохода Вы вступили в безопасное местоположение. Вы можете видеть детали этого частного ключа RSA при использовании команды:
$ openssl rsa -noout -text -in server.key
$ openssl rsa -in server.key -out server.key.unsecure
$ openssl req -new -key server.key -out server.csr
https://www.foo.dom/
, войдите в "www.foo.dom" здесь. Вы можете видеть детали этого CSR при использовании
$ openssl req -noout -text -in server.csr
$ openssl x509 -noout -text -in server.crt
server.key
и
server.crt
. они могут использоваться следующим образом в вашем
httpd.conf
файл:
SSLCertificateFile/path/to/this/server.crt SSLCertificateKeyFile/path/to/this/server.key
server.csr
файл больше не необходим.
короткий ответ должен использовать
CA.sh
или
CA.pl
подлинник, обеспеченный Опенсслом. Если Вы не имеете серьезное основание не к, Вы должны использовать их для предпочтения. Если Вы не можете, Вы мочь создать самоподписанное Свидетельство следующим образом:
$ openssl genrsa -des3 -out server.key 1024
host.key
файл и фраза прохода Вы вступили в безопасное местоположение. Вы можете видеть детали этого частного ключа RSA при использовании команды:
$ openssl rsa -noout -text -in server.key
$ openssl rsa -in server.key -out server.key.unsecure
$ openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt
server.crt
файл.
$ openssl x509 -noout -text -in server.crt
Вы просто должны прочитать это со старой фразой прохода и написать это снова, определяя новую фразу прохода. Вы можете достигнуть этого со следующими командами:
$ openssl rsa -des3 -in server.key -out server.key.new
$ mv server.key.new server.key
в первый раз, когда у Вас спрашивают о фразе прохода PEM, Вы должны войти в старую фразу прохода. После этого, Вас будут просить снова войти во фразу прохода - на сей раз, использовать новую фразу прохода. Если Вас будут просить проверить фразу прохода, то Вы будете должны войти в новую фразу прохода во второй раз.
причина этот диалог выскочил при запуске и каждом переначале, - то, что частный ключ RSA в вашем server.key файле сохранен в зашифрованном формате для соображений безопасности. Фраза прохода необходима, расшифровывают этот файл, таким образом это может быть прочитано и разобрано. Удаление фразы прохода удаляет слой безопасности от вашего сервера - продолжают предостережение!
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
$ chmod 400 server.key
теперь
server.key
содержит незашифрованную копию ключа. Если Вы укажете ваш сервер на этот файл, то это не будет побуждать Вас для фразы прохода. ОДНАКО, если любой получит этот ключ, то они будут в состоянии исполнить роль Вас на сети. ПОЖАЛУЙСТА удостоверьтесь, что разрешения на этом файле - такой, что только коренится, или пользователь сервера сети мог читать, это (предпочтительно заставляют ваш сервер сети начинаться как корень, но бежать как другой пользователь, и иметь ключ, удобочитаемый только корнем).
как альтернативный подход Вы можете использовать "
SSLPassPhraseDialog exec:/path/to/program
"средство. Примите во внимание, что это ни больше, ни менее безопасно, конечно.
частный ключ содержит ряд чисел. Два из этих чисел формируют "общественный ключ", другие - часть "частного ключа". "Общественные ключевые" биты включены, когда Вы производите CSR, и впоследствии являетесь частью связанного Свидетельства.
чтобы проверять, что общественный ключ в вашем Свидетельстве соответствует общественной части вашего частного ключа, Вы просто должны сравнить эти числа. Рассматривать Свидетельство и ключ управляют командами:
$ openssl x509 -noout -text -in server.crt
$ openssl rsa -noout -text -in server.key
`модуль и `общественный образец' части в ключе и Свидетельстве должны соответствовать. Поскольку общественный образец - обычно 65537, и трудно визуально проверить, что длинные числа модуля - то же самое, Вы можете использовать следующий подход:
$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5
это оставляет Вас с двумя скорее более короткими числами, чтобы сравниться. Это, в теории, возможной, что эти числа могут быть тем же самым, без чисел модуля, являющихся тем же самым, но возможности на это кардинально отдаленны.
если Вы желаете проверить, к какому ключу или удостоверяют специфический CSR, принадлежит, Вы можете выполнить то же самое вычисление на CSR следующим образом:
$ openssl req -noout -modulus -in server.csr | openssl md5
ошибки, типа
OpenSSL: error:14094412: SSL routines:SSL3_READ_BYTES:sslv3 alert bad certificate
в SSL logfile, обычно вызываются браузер, который является неспособным обращаться с сервером certificate/private-key. Например, Навигатор Netscape 3.x неспособен обращаться с ключевыми длинами RSA, не равными 1024 битам.
частные ключевые размеры для SSL должны быть или 512 или 1024 битами, для совместимости с определенными web-браузерами. keysize 1024 битов рекомендуется, потому что ключи, большие чем 1024 бита несовместимы с некоторыми версиями Навигатора Netscape и Microsoft Internet Explorer, и с другими браузерами, которые используют набор инструментов криптографии RSA BSAFE.
свидетельства Калифорнии под дорожкой Вы формировали с
SSLCACertificatePath
найдены SSLeay через мешанину symlinks. Эти ценности мешанины произведены `
openssl x509 -noout -hash
'команда. Однако, алгоритм имел обыкновение вычислять мешанину для свидетельства, измененного между SSLeay 0.8 и 0.9. Вы будете должны удалить всю старую мешанину symlinks и создать новые после модернизации. Использование
Makefile
если
mod_ssl
.
формат свидетельства по умолчанию для SSLeay/OpenSSL - PEM, который является просто закодированным DER Base64, с линиями нижней сноски и ударом головой. Для некоторых заявлений (например Microsoft Internet Explorer) Вы нуждаетесь в свидетельстве в простом формате DER. Вы можете преобразовать файл PEM
cert.pem
в передачу файл DER
cert.der
использование следующей команды:
$ openssl x509 -in cert.pem -out cert.der -outform DER
getca
or
getverisign
programs mentioned by Verisign, for installing my Verisign certificate?
Verisign никогда не обеспечивал определенные инструкции для Apache+mod_ssl. Предоставленные инструкции - для Цитадели C2Net's (коммерческий Apache базирующийся сервер с поддержкой SSL).
чтобы устанавливать ваше свидетельство, все, что Вы должны сделать, должно спасти свидетельство файлу, и дать название того файла к
SSLCertificateFile
директива. Вы будете также должны дать этому ключевой файл. За дополнительной информацией, см.
SSLCertificateKeyFile
директива.
да.
mod_ssl
включил поддержку средству SGC начиная с версии 2.1. Никакая специальная конфигурация не требуется - только используют Глобальное удостоверение личности как ваше свидетельство сервера.
усилить
из клиентов тогда автоматически обработан
mod_ssl
во времени выполнения.
Веризигн использует промежуточное свидетельство Калифорнии между корнем свидетельство Калифорнии (который установлен в браузерах), и свидетельство сервера (который Вы устанавливали на сервере). Вы должны были получить это дополнительное свидетельство Калифорнии от Веризигна. В противном случае жалуйтесь к ним. Тогда, формируйте это свидетельство с
SSLCertificateChainFile
директива. Это гарантирует, что промежуточное свидетельство Калифорнии посылают браузеру, заполняя промежуток в цепи свидетельства.
может быть множество причин для этого, но главный - проблемы с Тайником сессии SSL, определенным
SSLSessionCache
директива. Тайник сессии DBM - наиболее вероятный источник проблемы, таким образом используя тайник сессии ОТМЕТКИ КУРСА КОРАБЛЯ (или никакой тайник вообще) может помочь.
SSL использует сильное шифровальное шифрование, которое требует большого хруста числа. Когда Вы просите webpage через HTTPS, все (даже изображения) зашифровано прежде, чем это передано. Так увеличился, движение HTTPS ведет, чтобы загрузить увеличения.
это обычно вызывается a
/dev/random
устройство для
SSLRandomSeed
который блокирует прочитанный (2) запрос, пока достаточно энтропии не доступно, чтобы обслужить запрос. Больше информации доступно в руководстве ссылки для
SSLRandomSeed
директива.
обычно, любые шифры SSL, поддержанные версией Опенссла в использовании, также поддержаны
mod_ssl
. то, какие шифры являются доступными, может зависеть от способа, которым Вы строили Опенссла. Как правило, по крайней мере следующие шифры поддержаны:
чтобы определять фактический список доступных шифров, Вы должны управлять следующим:
$ openssl ciphers -v
по умолчанию, Опенссл делает нет позволить шифры ADH, для соображений безопасности. Пожалуйста убедитесь, что Вы знаете о потенциальных побочных эффектах, если Вы хотите позволять эти шифры.
чтобы использовать Анонимный Diffie-Hellman (ADH) шифры, Вы должны строить Опенссла с "
-DSSL_ALLOW_ADH
", и затем добавьте"
ADH
"в ваш
SSLCipherSuite
.
любой Вы сделали ошибку с вашим
>SSLCipherSuite
директива (сравнивают это с предварительно сконфигурированным примером в
httpd.conf-dist
) или Вы хотели использовать алгоритмы DSA/DH вместо RSA, когда Вы произвели ваш частный ключ и игнорировали или пропустили предупреждения. Если Вы выбрали DSA/DH, то ваш сервер не может сообщить использованию RSA-базирующиеся шифры SSL (по крайней мере, пока Вы не формируете дополнительную RSA-базирующуюся пару свидетельства/ключа). Современные браузеры как НЕ УТОЧНЕНО или ТО ЕСТЬ могут только общаться по SSL, использующему шифры RSA. Результат не "никакие разделенные шифры" ошибка. Чтобы устанавливать это, восстановите вашу пару свидетельства/ключа сервера, используя алгоритм RSA.
причина является очень технической, и несколько "цыпленок и яйцо" проблема. Слой протокола SSL остается ниже слоя протокола HTTP и заключает в капсулу HTTP. Когда связь SSL (HTTPS) установлена, Apache/mod_ssl должен договориться о параметрах протокола SSL с клиентом. Для этого, mod_ssl должен консультироваться с конфигурацией действительного сервера (например, это должно искать набор шифра, свидетельство сервера, и т.д.). Но чтобы пойти в правильного действительного Apacheа сервера должен знать
Host
область удара головой HTTP. Чтобы сделать это, удар головой запроса HTTP должен быть прочитан. Это не может быть сделано прежде, чем рукопожатие SSL закончено, но информация необходима, чтобы закончить фазу рукопожатия SSL. Лото!
Действительное Оказание гостеприимства на основе названия - очень популярный метод идентификации различных действительных хозяев. Это позволяет Вам использовать тот же самый IP адрес и то же самое число порта для многих различных участков. Когда люди идут дальше к SSL, кажется естественным предположить, что тот же самый метод может использоваться, чтобы иметь много различных действительных хозяев SSL на том же самом сервере.
это прибывает как скорее удар, чтобы узнать, что это невозможно.
причина - то, что протокол SSL является отдельным слоем, который заключает в капсулу протокол HTTP. Таким образом сессия SSL - отдельная сделка, которая имеет место прежде, чем сессия HTTP началась. Сервер получает запрос SSL на IP адресе X и порту Y (обычно 443). Так как запрос SSL не содержит никакого Хозяина: область, сервер не имеет никакого способа решить который действительный хозяин SSL использовать. Обычно, это будет только использовать первый, который это находит, который соответствует порту и IP определенному адресу.
Вы можете, конечно, использовать Действительное Оказание гостеприимства на основе названия, чтобы идентифицировать много non-SSL действительных хозяев (все на порту 80, например) и затем иметь единственного действительного хозяина SSL (на порту 443). Но если Вы делаете это, Вы должны удостовериться, чтобы поместить non-SSL число порта в директиву NameVirtualHost, например.
NameVirtualHost 192.168.1.1:80
другие решения для работы включают:
Используя отдельный IP обращается для различных хозяев SSL. Используя различные числа порта для различных хозяев SSL.
Хотя переговоры сжатия SSL были определены в спецификации SSLv2 и TLS, требуется до мая 2004 для RFC 3749, чтобы определить, ВЫКАЧИВАЮТ как договорный стандартный метод сжатия.
Опенссл 0.9.8 начал поддерживать это по умолчанию когда собрано с
zlib
выбор. Если и клиент и сервер поддержит сжатие, то это будет использоваться. Однако, большинство клиентов все еще пробует первоначально соединиться с SSLv2 Привет. Поскольку SSLv2 не включал множество предпочтенных алгоритмов сжатия в его рукопожатии, о сжатии нельзя договориться с этими клиентами. Если клиент повреждает поддержку SSLv2, или SSLv3 или TLS Привет можно послать, в зависимости от которого используется библиотека SSL, и сжатие может быть настроено. Вы можете проверить, используют ли клиенты сжатие SSL, регистрируя
%{SSL_COMPRESS_METHOD}x
переменная.
нет, имя пользователя/пароль передано зашифрованное. Изображение в браузерах Netscape фактически не синхронизировано со слоем SSL/TLS. Это только пуговицы к запертому государству, когда первая часть фактических webpage данных передана, который может смутить людей. Средство Базовой аутентификации - часть слоя HTTP, который является выше слоя SSL/TLS в HTTPS. Прежде, чем любая передача данных HTTP имеет место в HTTPS, слой SSL/TLS уже закончил его фазу рукопожатия, и переключил к зашифрованной коммуникации. Так что не будьте смущены этим изображением.
первая причина - то, что выполнение SSL в некоторых версиях MSIE имеет немного тонких ошибок, связанных с HTTP, держат - живое средство и SSL близко регистрируют тревоги относительно связи гнезда близко. Дополнительно взаимодействие между SSL и особенностями HTTP/1.1 проблематично в некоторых версиях MSIE. Вы можете работать вокруг этих проблем, вынуждая Apacheа не использовать HTTP/1.1, держать - живые связи или посылать SSL, близко регистрируют сообщения клиентам MSIE. Это может быть сделано при использовании следующей директивы в Том, что вы SSL-знали действительную секцию хозяина:
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
далее, некоторые версии MSIE имеют проблемы со специфическими шифрами. К сожалению, не возможно осуществить MSIE-определенную работу для этого, потому что шифры необходимы уже фаза рукопожатия SSL. Так MSIE-определенное
SetEnvIf
не будет решать эти проблемы. Вместо этого Вы должны будете сделать более решительные регуляторы глобальных параметров. Прежде, чем Вы решаете сделать это, удостоверьтесь, что ваши клиенты действительно имеют проблемы. В противном случае не делайте эти изменения - они затронут
все
ваши клиенты, MSIE или иначе.
следующая проблема состоит в том, что 56bit экспортные версии MSIE 5.x браузеры имеют сломанное выполнение SSLv3, которое взаимодействует ужасно с версиями Опенссла, больше чем 0.9.4. Вы можете принять это и требовать, чтобы ваши клиенты модернизировали их браузеры, Вы можете понизить Опенсслу 0.9.4 (не сообщенный), или Вы можете работать вокруг этого, признавая, что ваша работа затронет другие браузеры также:
SSLProtocol all -SSLv3
будет полностью повреждать протокол SSLv3 и позволять тем браузерам работать. Лучшая работа должна повредить только те шифры, которые вызывают неприятность.
SSLCipherSuite ALL:!ADH:
!EXPORT56
:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
это также позволяет сломанным версиям MSIE работать, но только удаляет более новое 56bit шифры TLS.
другая проблема с MSIE 5.x клиенты - то, что они отказываются соединиться с URL формы
https://12.34.56.78/
(где IP адреса используются вместо hostname), если сервер использует Сервер Криптография Gated (SGC) средство. Этого можно только избежать при использовании полностью компетентного названия области (FQDN) вебсайта в, осуществляет гиперссылку взамен, потому что MSIE 5.x имеет ошибку в способе, которым это обращается с переговорами SGC.
и наконец есть версии MSIE, которые, кажется, требуют, чтобы сессия SSL могла многократно использоваться (полностью не приспосабливающее стандарту поведение, конечно). Соединение с теми версиями MSIE только работает, если тайник сессии SSL используется. Так, как работа, удостоверьтесь, что Вы используете тайник сессии (см.
SSLSessionCache
директива).
это обычно происходит, когда Вы создали новое свидетельство сервера для данной области, но предварительно сказали вашему браузеру всегда принимать старое свидетельство сервера. Как только Вы очищаете вход для старого свидетельства от вашего браузера, все должно быть прекрасным. Выполнение Netscape SSL правильно, так, когда Вы сталкиваетесь с ошибками ввода / вывода с Навигатором Netscape, это обычно вызывается формируемыми свидетельствами.
следующие информационные ресурсы доступны. В случае проблем Вы должны искать здесь сначала.
следующие списки все возможности поддержки для mod_ssl, в порядке предпочтение. Пожалуйста пройдите эти возможности в этом заказе - только не выбирают тот, из которого Вы любите взгляд.
Вы должны всегда обеспечивать по крайней мере следующую информацию:
httpd -v
. версия Опенссла может быть определена, бегущий
openssl version
. альтернативно, если Вам установили Рысь, Вы можете управлять командой
lynx -mime_header http://localhost/ | grep Server
собирать эту информацию в единственном шаге.
configure
линия команды Вы использовали.
вообще не, по крайней мере не, если Вы не обеспечиваете больше деталей о кодовом местоположении где Apacheское сваленное ядро. То, что обычно всегда требуется, чтобы помочь Вам, - след (см. следующий вопрос). Без этой информации главным образом невозможно найти проблему и помочь Вам в установке этого.
следующее - шаги, Вы будете должны закончить, получить след:
OPTIM="-g -ggdb3"
"чтобы получить это. На других платформах по крайней мере"
OPTIM="-g"
"необходим.
CoreDumpDirectory /tmp
"к удостоверьтесь, что файл основной свалки может быть написан. Это должно закончиться в a
/tmp/core
или
/tmp/httpd.core
файл. Если Вы не получаете одного из них, пробуйте управлять вашим сервером под некорнем UID. Много современных ядер не позволяют процессу сваливать ядро после того, как это сделало a
setuid()
(если это не делает
exec()
) для соображений безопасности (там можно дать информация привилегию, перенесенная в памяти). В случае необходимости, Вы можете бежать
/path/to/httpd -X
вручную вынуждать Apacheа не разветвляться.
gdb /path/to/httpd /tmp/httpd.core
или подобная команда. В GDB, все Вы должны сделать тогда должен вступить
bt
, и вот, Вы получаете след. Поскольку другие отладчики консультируются с вашим местным руководством отладчика.