Подтвердить что ты не робот

Настройка SSL на локальном сервере xampp/apache

Я пытаюсь получить доступ к Active Directory с моего локального веб-сервера. Для этого я использую последнюю версию xampp и PHP script, называемую adLDAP. Если я правильно понимаю, мне нужно включить SSL для доступа к URL-адресам https. Я попытался это сделать, но не повезло:( Может ли кто-нибудь связать учебник или объяснить мне, как установить SSL на xampp/apache для Windows 7 64bit? Любая помощь будет оценена:)

4b9b3361

Ответ 1

Часть Apache - позволяет вам открывать https://localhost/xyz

Существует файл конфигурации xampp/apache/conf/extra/httpd-ssl.conf, который содержит всю конфигурацию ssl. Он достаточно хорошо документирован, поэтому читайте комментарии и посмотрите http://httpd.apache.org/docs/2.2/ssl/. Файлы начинаются с <IfModule ssl_module>, поэтому он имеет эффект, только если apache был запущен с модулем mod_ssl.

Откройте файл xampp/apache/conf/httpd.conf в редакторе и найдите строку

#LoadModule ssl_module modules/mod_ssl.so

удалите хэш-метку, сохраните файл и запустите apache. Теперь веб-сервер должен начинаться с xspp basic/default ssl confguration; достаточно хорошо для тестирования, но вы можете прочитать немного больше о mod_ssl в документации apache.


Часть PHP - включение adldap для использования ldap over ssl

adldap нуждается в расширении php openssl для использования соединений "ldap over ssl". Расширение openssl отправляется как dll с xampp. Вы должны "сообщить" php, чтобы загрузить эту DLL, например. с помощью extension=nameofmodule.dll в вашем php.ini Run

echo 'ini: ', get_cfg_var('cfg_file_path');

Он должен показать вам, какой файл ini использует ваша установка php (может отличаться между php-apache-модулем и версией php-cli).
Откройте этот файл в редакторе и выполните поиск

;extension=php_openssl.dll

удалите точку с запятой, сохраните файл и запустите apache.

см. также: http://docs.php.net/install.windows.extensions

Ответ 2

Оказывается, что OpenSSL скомпилирован и включен в php 5.3 XAMPP 1.7.2 и поэтому больше не требуется отдельная dll расширения.

Тем не менее, вам STILL необходимо включить его в вашем файле PHP.ini строку extension=php_openssl.dll

Ответ 3

Я сделал большую часть предлагаемого материала здесь, все еще не работал. Пробовал это, и это сработало: Откройте панель управления XAMPP, найдите кнопку Конфигурация для Apache module. Нажмите кнопку Config и выберите PHP (php.ini). Откройте любой текстовый редактор и удалите полуколонец перед php_openssl. Сохранить и перезапустить Apache. Это должно сделать!

Ответ 4

Вы можете включить SSL на XAMPP, создав самоподписанные сертификаты и затем установив эти сертификаты. Введите приведенные ниже команды для создания и переноса сертификатов в ssl-папки.

openssl genrsa -des3 -out server.key 1024

openssl req -new -key server.key -out server.csr

cp server.key server.key.org

openssl rsa -in server.key.org -out server.key

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

cp server.crt/opt/lampp/etc/ssl.crt/domainname.crt

cp server.key/opt/lampp/etc/ssl.key/domainname.key

(Используйте sudo с каждой командой, если вы не являетесь суперпользователем)

Теперь, проверьте, что mod_ssl включен в [XAMPP_HOME]/etc/httpd.conf:

LoadModule ssl_module modules/mod_ssl.so

Добавьте виртуальный хост в этом примере "localhost.domainname.com", отредактировав [XAMPP_HOME]/etc/extra/httpd-ssl.conf следующим образом:

<virtualhost 127.0.1.4:443>
    ServerName localhost.domainname.com
    ServerAlias localhost.domainname.com *.localhost.domainname.com
    ServerAdmin [email protected]

    DocumentRoot "/opt/lampp/htdocs/"

    DirectoryIndex index.php

    ErrorLog /opt/lampp/logs/domainname.local.error.log
    CustomLog /opt/lampp/logs/domainname.local.access.log combined

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /opt/lampp/etc/ssl.crt/domainname.crt
    SSLCertificateKeyFile /opt/lampp/etc/ssl.key/domainname.key

    <directory /opt/lampp/htdocs/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </directory>
    BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</virtualhost>

Добавьте следующую запись в /etc/hosts:

127.0.1.4 localhost.domainname.com

Теперь попробуйте установить сертификат/попробовать импортировать сертификат в браузер. Я проверил это, и это сработало на Ubuntu.

Ответ 5

Я прошел через все ответы и руководства по Интернету, но вот основные шаги: включить SSL (https) на локальном хосте с XAMPP:

Требуется:

  • Выполнить → "C:\xampp\apache\makecert.bat" (дважды щелкните по окнам) Заполните пассивы по вашему выбору, нажмите Enter для всего, НО определите "localhost"!!! Будьте осторожны, если вас спросят:

    Общее имя (например, полное доменное имя сервера или ваше имя) []: localhost

    (Сертификаты выдаются только для доменной зоны!)

  • Перезапустить apache
  • Chrome → Настройки → Поиск "Сертификат" → Управление сертификатами → Доверенные корневые центры сертификации → Импорт → "C:\xampp\apache\conf\ssl.crt\server.crt" → Должны спросить "ДА" для подтверждения!
  • https://localhost/testssl.php → [OK, теперь зеленый!] (любой тестовый файл html)

Дополнительно: (если выше не работает, выполните следующие шаги)

  • Запустить XAMPP Как admin (Пуск → XAMPP → щелкните правой кнопкой мыши → Запуск от имени администратора)
  • XAMPP → Apache → Config → httpd.conf( "C:\xampp\apache\conf\httpd.conf" )

    LoadModule ssl_module modules/mod_ssl.so(удалить # сформировать начало строки)

  • XAMPP → Apache → Config → php.ini( "C:\xampp\php\php.ini" )

    extension = php_openssl.dll(удалить из начала строки)

  • Перезапустите apache и chrome!

Проверьте какие-либо проблемы или статус вашего сертификата:

Chrome → F12 → Безопасность → Просмотр сертификата

Ответ 6

Я сделал все предлагаемые здесь материалы, и мой код все еще не работал, потому что я использовал curl

Если вы используете curl в php файле, завиток, кажется, отклоняет весь трафик ssl по умолчанию. Быстрое исправление, которое сработало для меня, заключалось в том, чтобы добавить:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

перед вызовом:

 curl_exec():

в файле php.

Я считаю, что это отключает проверку SSL-сертификатов.