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


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

Author: horgen, 2010-04-15

6 answers

Часть 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

Adldap нуждается в расширении openssl php для использования соединений "ldap через ssl". Расширение openssl поставляется в виде библиотеки dll с ксампп. Вы должны "сказать" 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

 28
Author: VolkerK, 2010-04-15 08:32:38

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

Однако вам ВСЕ равно нужно включить его в вашем файле PHP.ini в строке extension=php_openssl.dll

 6
Author: Flak DiNenno, 2012-08-19 06:23:54

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

 4
Author: dc-aoxn, 2013-06-12 22:20:50

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

Сервер Openssl genrsa -des3-out.ключ 1024

Openssl req - сервер новых ключей.сервер выдачи ключей.csr

Сервер Cp.ключ server.key.org

Openssl rsa-в server.key.org - сервер отключен.ключ

Openssl x509 -req -365 дней на сервере.csr -ключ для входа сервер.сервер вывода ключа.crt

Сервер Cp.crt/opt/lampp/etc/ssl.crt/доменное имя.crt

Сервер Cp.ключ/opt/lampp/etc/ssl.ключ/имя домена.ключ

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

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

Модуль загрузки 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.

 2
Author: sAn, 2016-05-04 19:08:55

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

Требуется:

  1. Выполнить ->"C:\xampp\apache\makecert.bat " (дважды щелкните на Windows) Заполните пароли по вашему выбору, нажмите Enter для всего, КРОМЕ определения "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 ->Конфигурация ->httpd.conf ("C:\xampp\apache\conf\httpd.conf ")

    Модуль загрузки ssl_module модули/mod_ssl.so (удалить # в начале строки)

  3. XAMPP ->Apache ->Конфигурация ->php.ini ("C:\xampp\php\php.ini ")

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

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

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

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

 1
Author: Tarik, 2017-04-22 21:44:26

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

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

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

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

 curl_exec():

В файле php.

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

 0
Author: Chris Dutrow, 2012-05-12 20:02:29