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