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

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

Часть 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. Теперь веб-сервер должен начинаться с базового / стандартного ssl-конфигурации xampp; достаточно хорошо для тестирования, но вы можете прочитать немного больше о mod_ssl в документации apache.


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

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

 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

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

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

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

Вы можете включить 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 / 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 admin@localhost 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.

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

Необходимые:

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

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

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

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

Необязательно: (если выше не работает, выполните больше этих шагов)

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

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

  3. XAMPP -> Apache -> Config -> php.ini ("C: \ xampp \ php \ php.ini")

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

  4. Перезапустите apache и хром!

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

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

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

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

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

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

  curl_exec(): 

в файле php.

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