Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou trabalhando com conexões seguras no MySQL e para isso todas elas são feitas através do SSL. Só que quando tento conectar com o banco pelo navegador a seguinte mensagem aparece:
SQLSTATE[HY000] [3159] CONNECTIONS USING INSECURE TRANSPORT ARE PROHIBITED WHILE --REQUIRE_SECURE_TRANSPORT=ON.
No SGBD eu escolhi uma opção que requer a conexão SSL e deu certo mas não sei como fazer isso no PHP PDO.
Abraços.
Esse caminho é o arquivo do servidor?
Pesquisando por ai achei uma constante PDO que fez funcionar a conexao:
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
Ela faz com que os certificados do servidor não sejam verificados, mas eu não queria isso pois qualquer caminho que informe na constante libera a conexao normalmente e eu não sei se essa conexao é protegida>
11 horas atrás, lvsis disse:
Esse caminho é o arquivo do servidor?
Sim.
>
10 horas atrás, lvsis disse:
Pesquisando por ai achei uma constante PDO que fez funcionar a conexao:
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
Ela faz com que os certificados do servidor não sejam verificados, mas eu não queria isso pois qualquer caminho que informe na constante libera a conexao normalmente e eu não sei se essa conexao é protegida
Não é.
Aquele código que eu disse é sim, basta você adicionar o certificado.
Se você der uma rápida olhada no Google tem milhares de formas de fazer isso.
Mas pelo que eu entendo, você usa isso quando seu banco de dados é em outro servidor com outro IP
então para ter uma conexão segura usa, mas se for no mesmo local, eu não acho que seja necessário
Bem, isso é minha opinião.Estou enfrentando problema semelhante com o erro:
Erro: SQLSTATE[HY000] [9002] SSL connection is required. Please specify SSL options and retry.
Estou passando as opções conforme abaixo, mas o erro persiste:
$conn = new PDO(
"mysql:host=host;port=3306;dbname=bd;charset=utf8;",
"user",
"senha",
array(
PDO::MYSQL_ATTR_SSL_KEY => 'c:\ssl\BaltimoreCyberTrustRoot.crt.pem',
PDO::MYSQL_ATTR_SSL_CERT => 'c:\ssl\BaltimoreCyberTrustRoot.crt.pem',
PDO::MYSQL_ATTR_SSL_CA => '../ssl/BaltimoreCyberTrustRoot.crt.pem'
);
Alguma dica?
EDIT: estou utilizando BD mysql no Azure.
O usuário do Mysql está habilitado com SSL?
então na sua config do PDO
adiciona isso:
PDO::MYSQL_ATTR_SSL_CA => '/caminho/do/certificado.pem'