SSL para PHP no Windows Server 2003

SSL para PHP no Windows Server 2003

Eu tenhojanelasServidor 2003 R2 comApache2.2.4 ePHP5.2.6. Quero acessar páginas por https (SSL).

E recebo este erro (Zend Framework GData):

Unable to find the socket transport "ssl" - enter code here did you forget to enable it when you configured PHP?

Então o que eu fiz. Fui ao php.ini e descomentei a linha

extension=php_openssl.dll

Eu também instaleiWin32 OpenSSL.

Mas nada funciona. O que devo fazer?

Responder1

Ok, há uma série de etapas para verificar aqui:

  • Primeiramente, crie um arquivo phpinfo() para verificar se a extensão SSL do PHP está realmente habilitada, eu sei que você disse que a habilitou, mas verifique se você fez isso no arquivo PHP.ini correto e se a mudança está realmente entrando em vigor .
  • Certifique-se de que libeay32.dll e ssleay32.dll estejam em algum lugar no PATH do Windows
  • Certifique-se de que php_openssl.dll esteja em seu diretório de extensões
  • Verifique se o seu arquivo phpinfo() está mostrando o diretório de extensão correto.

Responder2

Estas são as partes relevantes do tutorial sobre:http://fash7y.wordpress.com/2011/12/0/solved-how-to-set-up-https-with-openssl-in-wamp/

para continuar trabalhando usandohttp://openssl-for-windows.googlecode.com/files/openssl-0.9.8k_WIN32.zip.

Ok, vamos fazer os próximos passos. ;)

  1. Criar certificado e chave SSL

a. Ekstrak OpenSSL para o seu diretório e copie este arquivo:

openssl.cnf to .\Apache2.2.11\conf\
from folder bin, copy all files to .\Apache2.2.11\bin\

// Substitua os arquivos antigos! :D

b. Abra a janela de comando do DOS digitando CMDno menu de pesquisa.

c. Digite este cd C:\wamp\bin\apache\apache2.2.11\bin

d. Crie uma chave privada de servidor com criptografia de 1024 bits digitando este comando: openssl genrsa -des3 -out server.key 1024

// Será solicitada uma frase secreta (senha), basta digitar a senha que desejar.

e. Remova a frase secreta da chave privada RSA (mantendo uma cópia de backup do arquivo original). Digite isto:

copiar server.key server.key.org

openssl rsa -in servidor.key.org -out servidor.key

// Ele irá perguntar a senha, basta digitá-la.

f. Crie um certificado autoassinado (estrutura X509) com a chave RSA que você acabou de criar. Digite isto: openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf

  1. Copie os arquivos server.key e server.crt

a. No Apache2.2.11\conf\, crie duas pastas nomeadas como ssl.key e ssl.crt

b. Copie o arquivo server.key para a pasta ssl.key e o arquivo server.crt para a pasta ssl.crt

  1. Edite o arquivo httpd.conf, php.ini e httpd_ssl.conf

a. Abra o arquivo httpd.conf

b. Remova o comentário '#' na linha que diz: LoadModule ssl_module module/mod_ssl.so

c. Remova o comentário '#' na linha que diz: Incluir conf/extra/httpd-ssl.conf

d. Abra este arquivo-> C:\wamp\bin\php\php5.3.8\php.ini

e. Remova o comentário ';' na linha que diz: extension=php_openssl.dll

f. Abra este arquivo -> C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd_ssl.conf

g. Encontre a linha que diz: .

h. Logo depois, altere a linha que diz:

Change the line “DocumentRoot …” to DocumentRoot “C:/wamp/www/”
Change the line “ServerName…” to ServerName localhost:443
Change the line “ErrorLog….” to Errorlog “C:/wamp/bin/apache/Apache2.2.11/logs/sslerror.log”
Change the line “TransferLog ….” to TransferLog “C:/wamp/bin/apache/Apache2.2.11/logs/sslaccess.log”
Change the line “SSLCertificateFile ….” to SSLCertificateFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.crt/server.crt”
Change the line “SSLCertificateKeyFile ….” to SSLCertificateKeyFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.key/server.key”
Change the line which says <Directory “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin”> or something like that (sorry I’m forget what its default dir :p) to <Directory “C:/wamp/www/”>
Add the following lines inside those <Directory … >…</Directory> tags:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Change the line “CustomLog…” to CustomLog “C:/wamp/bin/apache/Apache2.2.11/logs/ssl_request.log”
  1. Certifique-se de que funciona!

a. Nas janelas de comando DOS anteriores, digite httpd -t . Se exibir Sysntax está OK, vá para a próxima etapa. Caso contrário, corrija a sintaxe errada e refaça a etapa 3.

b. Reinicie o servidor Apache. Se a reinicialização for bem-sucedida, abra o navegador e digite http.s localhost/

Como vai? Funciona, hein? Parabéns! :D

  1. Tente isto: htt..localhost

informação relacionada