Configurando o SSL em um servidor local xampp / apache

Estou tentando acessar um Active Directory do meu servidor web local. Para fazer isso, estou usando a vers√£o mais recente do xampp e um script PHP chamado adLDAP . Se eu entender bem as coisas, preciso ativar o SSL para acessar https URLs. Eu tentei google, mas sem sorte ūüôĀ Algu√©m poderia ligar um tutorial ou me explicar como instalar SSL no xampp / apache para Windows 7 64 bits? Qualquer ajuda seria apreciada ūüôā

Parte Apache Рpermitindo que você abra https: // localhost / xyz

Existe o arquivo de configuração xampp / apache / conf / extra / httpd-ssl.conf que contém toda a configuração específica do ssl. Está bastante bem documentado, então leia os comentários e veja http://httpd.apache.org/docs/2.2/ssl/ . Os arquivos começam com , portanto, ele só tem um efeito se o apache foi iniciado com o módulo mod_ssl.

Abra o arquivo xampp / apache / conf / httpd.conf em um editor e procure a linha

 #LoadModule ssl_module modules/mod_ssl.so 

remova o hashmark, salve o arquivo e reinicie o apache. O servidor web deve agora começar com a confusão de ssl básica / padrão do xampp; Bom o suficiente para testar, mas você pode querer ler um pouco mais sobre o mod_ssl na documentação apache.


Parte PHP – permitindo que adldap use ldap over ssl

adldap precisa da extens√£o openssl do php para usar as conex√Ķes “ldap over ssl”. A extens√£o openssl √© fornecida como uma dll com xampp. Voc√™ deve “dizer” php para carregar esta dll, por exemplo, tendo uma extension=nameofmodule.dll no seu php.ini
Corre

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

Deve mostrar-lhe qual arquivo ini usa sua instalação php (pode diferir entre o php-apache-module e a versão php-cli).
Abra este arquivo em um editor e procure por

 ;extension=php_openssl.dll 

remova o ponto-e-vírgula, salve o arquivo e reinicie o apache.

veja também: http://docs.php.net/install.windows.extensions

Acontece que o OpenSSL é compilado e habilitado no php 5.3 do XAMPP 1.7.2 e, portanto, não requer mais uma dll de extensão separada.

No entanto, você ainda precisa ativá-lo em seu arquivo PHP.ini a extension=php_openssl.dll linha extension=php_openssl.dll

Eu fiz a maioria das coisas sugeridas aqui, ainda não funcionou. Tentei isso e funcionou: Abra o Painel de Controle do XAMPP , localize o botão Config para o módulo Apache . Clique no botão Config e selecione PHP (php.ini) . Abra com qualquer editor de texto e remova a semi-coluna antes de php_openssl . Salve e reinicie o Apache. Isso deve ser feito!

Você pode habilitar o SSL no XAMPP criando certificados auto-assinados e depois instalando esses certificados. Digite os comandos abaixo para gerar e mover os certificados para pastas 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

(Use sudo com cada comando se você não for o superusuário)

Agora, verifique se o mod_ssl est√° ativado em [XAMPP_HOME] /etc/httpd.conf:

LoadModule ssl_module modules / mod_ssl.so

Adicione um host virtual, neste exemplo “localhost.domainname.com” editando [XAMPP_HOME] /etc/extra/httpd-ssl.conf da seguinte maneira:

  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  Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all  BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0  

Adicione a seguinte input a / etc / hosts:

 127.0.1.4 localhost.domainname.com 

Agora, tente instalar o certificado / tentar importar o certificado para o navegador. Verifiquei isso e isso funcionou no Ubuntu.

Eu passei por todas as respostas e tutoriais pela internet, mas aqui est√£o as etapas b√°sicas para habilitar SSL ( https ) no localhost com XAMPP :

Requeridos:

  1. Execute -> “C: \ xampp \ apache \ makecert.bat” (clique duas vezes em Windows) Preencha os passaportes de sua prefer√™ncia, pressione Enter para tudo, MAS defina “localhost” !!! Tenha cuidado quando solicitado aqui:

    Nome comum (por exemplo, FQDN do servidor ou SEU nome) []: localhost

    (Os certificados são emitidos somente por zona de nome de domínio!)

  2. Reinicie apache
  3. Chrome -> Configura√ß√Ķes -> Pesquisar “Certificado” -> Gerenciar Certificados -> Autoridades de Certifica√ß√£o Raiz Confi√°veis ‚Äč‚Äč-> Importar -> “C: \ xampp \ apache \ conf \ ssl.crt \ server.crt” -> Precisa Perguntar “SIM” para confirma√ß√£o!
  4. https: //localhost/testssl.php -> [OK, Now Green!] (qualquer arquivo de teste html)

Opcional: (se acima não funcionar, faça mais dessas etapas)

  1. Execute o XAMPP como administrador (Iniciar -> XAMPP -> clique com o bot√£o direito do mouse -> Executar como administrador)
  2. XAMPP -> Apache -> Config -> httpd.conf (“C: \ xampp \ apache \ conf \ httpd.conf”)

    LoadModule ssl_module modules / mod_ssl.so (remover # formar o início da linha)

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

    extensão = php_openssl.dll (remover, a partir do início da linha)

  4. Reinicie apache e chrome!

Verifique os problemas ou o status do seu certificado:

Chrome -> F12 -> Segurança -> Ver Certificado

Eu fiz todas as coisas sugeridas aqui e meu código ainda não funcionou porque eu estava usando curl

Se você estiver usando curl no arquivo php, o curl parece rejeitar todo o tráfego ssl por padrão. Uma solução rápida que funcionou para mim foi adicionar:

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

antes de ligar:

  curl_exec(): 

no arquivo php.

Eu acredito que isso desabilita toda a verificação de certificados SSL.