Я пытаюсь получить доступ к 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.
Оказывается, 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 :
Выполнить -> «C: \ xampp \ apache \ makecert.bat» (дважды щелкнуть по окнам) Заполните пассивы по вашему выбору, нажмите Enter для всего, но определите «localhost» !!! Будьте осторожны, когда вас спросят:
Общее имя (например, полное доменное имя сервера или ваше имя) []: localhost
(Сертификаты выдаются только для доменной зоны!)
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 -> F12 -> Безопасность -> Просмотр сертификата
Я сделал все предлагаемые материалы здесь, и мой код все еще не работал, потому что я использовал curl
Если вы используете curl
в файле php, завиток, кажется, отклоняет весь трафик ssl по умолчанию. Быстрое исправление, которое сработало для меня, заключалось в том, чтобы добавить:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
перед вызовом:
curl_exec():
в файле php.
Я считаю, что это отключает проверку SSL-сертификатов.