Ir para conteúdo
lvsis

PHP PDO com MySQL SSL

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Editado por wischutz
Inseridas informações do servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jefferson andre
      Ola, estou criando um contador de acessos diario mas nao funciona, a tabela tem o campo data no formato date e o campo contador int(10)
       
      A ideia eh verificar a data e se nao existir incluir na tabela, se existir adicionar ao contador
       
      Parece que o erro esta no formato da data, nem manualmente consigo incluir na tabela via localhost ou na hospedagem da google
       
      Agradeço qualquer ajuda
       
      <?php // fazendo uma conexão com o banco de dados include("conexao.php"); // grava a data atual em uma variavel date_default_timezone_set('America/Sao_Paulo'); $date = date('d-m-Y'); //$sql = "SELECT codigo FROM contador"; $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); if (mysqli_num_rows($resultado)== true){ // registro ja existe } else { // resultado nao encontrado entao inserir $sql = "INSERT INTO contador_diario ('data', 'contador') VALUES ('$date', '1')"; if ($arquivo->query($sql) == TRUE) { echo "Data cadastrada com sucesso"; } else { echo "Erro: " . $sql . "<br>" . $arquivo->error; } } // refaz a pesquisa para registrar o contador $resultado = $arquivo->query("SELECT data,contador FROM contador_diario WHERE data = '$date'"); // igualar a array a uma variavel $linha=mysqli_fetch_array($resultado); $cod_2 = $linha["contador"]+1; // lista a variavel //echo "<font face='Arial'><span class='style14'>$cod_2</span></font>"; $sql = "UPDATE contador_diario SET contador=$cod_2"; if ($arquivo->query($sql) === TRUE) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas diario" . mysqli_error($arquivo); } // fecha a conexao mysqli_close($arquivo); ?>  
    • Por gersonab
      Tenho este sql que funciona normal:
      <?php $idtor = (int)$_GET['id_tor']; $dia = $_GET['dia']; $sql3 = "SELECT * FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE data = :dia AND id_torneio = :idtor ORDER BY cantosfim DESC, pontos DESC, cantos DESC"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idtor', $idtor); $stmt->bindParam(':dia', $dia); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> porém este outro não retorna nada, nem erro...
      <?php $idtor = (int)$_GET['id_tor']; $consul = "SELECT id_cantos, id_torneio, id_campeonato, SUM(cantosfim) AS cantfin, SUM(pontos) AS pontfin FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE id_tor = :idtor ORDER BY pontfin DESC, cantfin DESC"; $stmt = $pdo->prepare($consul); $stmt->bindValue(':idtor', $idtor); $stmt->execute(); while ($lin = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> não consigo encontrar o erro.
    • Por alh
      Estou seguindo as especificações corretamente do git. https://github.com/opencartbrasil/opencart-rest-api/blob/master/README.md
      Estou tendo o erro ao acessar minha página de integração:
      ERRO: Not found (entity)
      Ao acessar minha página que contém o seguinte código: categorias.php
       
      No arquivo abaixo estou colocando a minha KEY e domínio correto.
      <?php $headers = array(); $headers[] = 'Content-Type: application/json'; $headers[] = 'key: MINHAKEY'; // // Replace key value for API key OpenCart (Only numbers and letters) $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => 'http://www.NOMEDOMEUDOMINIO.com.br/api.php/categories', // Replace domain and table name CURLOPT_HTTPHEADER => $headers, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false ]); $out = curl_exec($ch); curl_close($ch); print_r( $out ); // Result json ?>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.