Настройка SSL на локальном сервере xampp / apache - PullRequest
23 голосов
/ 15 апреля 2010

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

Ответы [ 6 ]

28 голосов
/ 15 апреля 2010

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


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

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

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

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

;extension=php_openssl.dll

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

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

6 голосов
/ 19 августа 2012

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

Тем не менее, вам НЕОБХОДИМО включить его в файле PHP.ini в строку extension=php_openssl.dll

4 голосов
/ 13 июня 2013

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

2 голосов
/ 04 мая 2016

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

1 голос
/ 23 апреля 2017

Я прошел через все ответы и учебники по Интернету, но вот основные шаги до включение SSL ( https ) на локальном хосте с 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 -> [ОК, теперь зеленый!] (Любой тестовый файл html)

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

  1. Запустить XAMPP от имени администратора (Пуск -> 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!

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

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

0 голосов
/ 13 мая 2012

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

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

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

перед звонком:

 curl_exec():

в php файле.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...