2014-09-30 4 views
1

SSL을 필요로하는이 코드를 실행하면 작동하지 않지만 (사용자가 액세스가 거부되었습니다) SSL없이 작동합니다.PDO가 SSL과 함께 작동하지 않습니다.

이것을 막으려면 서버 측에서 어떤 일이 벌어지고 있습니까? 분명히 암호/사용자 구성 및 SSL을 사용하여 서버에 다른 연결이 잘 작동하므로 서버가 암호화 된 연결을 수락하고 있음을 알고 있습니다.

정보를 원하시면 이미 체크 아웃 Connect to remote MySQL server with SSL from PHP 있습니다.

$dbE = new PDO(
    'mysql:dbname=DB;host=IP', 
    USER, 
    PASS, 
    array(
     PDO::MYSQL_ATTR_SSL_KEY => 'D:\ssl\mysql\client-key.pem', 
     PDO::MYSQL_ATTR_SSL_CERT => 'D:\ssl\mysql\client-cert.pem', 
     PDO::MYSQL_ATTR_SSL_CA => 'D:\ssl\mysql\ca-cert.pem' 
    ) 
); 
+0

어떤 PHP 버전을 사용하고 있습니까? – Daan

+0

현재 5.3.8에 있지만 최신 WAMP 서버로 업그레이드하는 과정에서 문제가 개선되는지 확인하고 있습니다. 불행히도 \\는 특별히 도움을주지는 않았지만 업그레이드가 수행되는지는 알 수 있습니다. – Ukuser32

답변

0

많은 수사를 거친 후 인증서를 재구성하고 머리를 숙일 때 나는 그것을 알아 냈습니다 (ptl). 문제는 (어디에서도 실제로 찾을 수 없었지만) 클라이언트 인증서 은 서버에서 클라이언트로 복사 된이어야합니다. PDO 구성에 사용되는 경로는 서버의 경로가 아니라 ca/​​cert/key의 CLIENTS 사본 경로입니다. 나는 이것을 인식하지 못했고 약간 더 명확해질 필요가 있다고 생각한다.

http://dev.mysql.com/doc/refman/5.0/en/creating-ssl-certs.html의 예조차 클라이언트 키가 클라이언트가 아닌 서버에 상주 함을 의미합니다. 이것이 도움이되기를 바랍니다.

관련 문제