PHPMailer가 PHP 5.6의 인증서 불일치에 대한 PHP 경고를 표시하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-26 23:09:31
원래의
666명이 탐색했습니다.

Why Does PHPMailer Emit a PHP Warning About a Mismatched Certificate in PHP 5.6?

인증서 불일치로 인해 PHPMailer에서 PHP 경고 표시

PHPMailer 사용자는 PHP 5.6에서 SMTP 호스트에 연결할 때 경고가 표시될 수 있습니다.

PHP Warning: stream_socket_enable_crypto(): Peer certificate did not match expected
로그인 후 복사

이 경고는 SSL 인증서를 엄격하게 확인하는 PHP 5.6의 보안 강화로 인해 발생합니다. 경고는 SMTP 호스트가 제시한 인증서가 해당 호스트의 예상 인증서와 일치하지 않음을 나타냅니다.

근본 원인:

SMTP 호스트가 인증서를 제시할 때 불일치가 발생합니다. 예상 호스트 이름과 일치하는 CN(일반 이름)이 없는 인증서입니다. 예를 들어 mx1.sub4.homie.mail.dreamhost.com에 연결 중이고 인증서 CN이 *.mail.dreamhost.com인 경우 PHP는 경고를 발생시킵니다.

해결책:

이 문제를 해결하려면 두 가지 접근 방식이 있습니다.

  1. SMTP 호스트에 문의: 호스트가 CN을 갖도록 SSL 인증서를 업데이트하도록 요청합니다. 연결하려는 호스트 이름과 일치합니다. 이는 권장되는 보안 솔루션입니다.
  2. 인증서 확인을 무시하도록 PHPMailer 구성: 다음 SMTP옵션을 설정하여 인증서 불일치를 무시하도록 PHPMailer를 구성할 수 있습니다.
$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer'  => false,
        'verify_peer_name'  => false,
        'allow_self_signed' => true
    )
);
로그인 후 복사

참고: 인증서 확인을 비활성화하는 것은 권장되지 않으며 임시 해결 방법으로만 사용해야 합니다.

결론:

PHP "stream_socket_enable_crypto(): 피어 인증서가 예상과 일치하지 않습니다."라는 경고는 SMTP 호스트에 연결하여 인증서를 업데이트하거나 PHPMailer가 인증서 확인을 무시하도록 구성하여 해결할 수 있습니다. 권장되는 해결 방법은 SMTP 호스트가 호스트 이름과 일치하는 유효한 인증서를 제공하도록 하는 것입니다.

위 내용은 PHPMailer가 PHP 5.6의 인증서 불일치에 대한 PHP 경고를 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!