[워드프레스] GnuTLS recv error: (-9) 오류 문제 해결

들어가며

"GnuTLS recv error (-9):..." 에러는 여러 상황에서 발생할 수 있습니다. 예를 들어, JetPack을 제대로 설치하는 경우에도 다음과 같은 오류가 발생하는 경우가 있습니다.

GnuTLS recv error (-9): A TLS packet with unexpected length was received.

조금 검색해보면 PHP를 다시 빌드하는 것이 유일한 해결책이라고 나와 있습니다. 하지만 아래에 설명된 방법을 통해 이 문제를 쉽게 해결할 수 있습니다.

이런 오류가 발생하는 또 다른 예로서 워드프레스의 다국어 번역 플러그인인 WPML을 설치하고 사이트 키를 등록할 때 위와 같은 오류가 발생할 수 있습니다.

GnuTLS recv error in wpml 2

이와 관련하여 이 글을 보면 다음 세 라인을 추가하여 curl에서 서버 인증서 확인 절차를 생략하도록 하면 된다고 합니다.

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);

하지만 이 방법으로 안 될 수 있습니다. 이 경우 아래 방법에 따라 cURL을 일시적으로 비활성화한 후에 사이트 키를 등록한 다음 cURL을 다시 활성화시켜 주면 됩니다.

Core Control 플러그인을 사용하여 cURL 비활성화시키기

  1. 먼저 Core Control 플러그인을 설치합니다.
  2. 이 플러그인을 설치한 후 활성화하면 워드프레스 대시보드의 도구 아래에 Core Control 옵션이 추가됩니다. 클릭하여 들어가면 여러 가지 모듈이 표시됩니다. 이 중에서 “HTTP Access Module”을 체크하고 “Save Module Choices”를 눌러 선택 사항을 저장합니다.Core Control WordPress Plugin그러면 동일한 페이지에서 상단에 "Main Page" 옆에 "External HTTP Access"라는 탭이 하나 생깁니다. 이 링크를 누릅니다.
  3. External HTTP Access
  4. 첫 번째 옵션 "Manage Transports"에서 cURL 라인의 "Disable Transport"를 선택합니다.
    Disable cURL
  5. 이제 JetPack이나 WPML에서 "GnuTLS recv error (-9):..." 오류가 발생하지 않을 것입니다. 원하는 작업을 한 후에 위의 절차를 역으로 수행하여 cURL을 다시 활성화시키고 Core Control 플러그인을 제거하도록 합니다.

WPML은 워드프레스에서 다국어 사이트를 운영하는 경우에 많이 사용되는 플러그인입니다. AVADA, Enfold 등 많은 테마에서 이 플러그인과 호환됩니다. 이 플러그인을 구입하면 사이트 개수에 관계없이 사이트 키를 발급 받아 사용할 수 있습니다.

Multilingual WordPress

Polylang과 같은 무료 플러그인도 있지만 사이트 속도에 좋지 않은 영향을 미쳐서 이 블로그에서 Polylang을 설치했다가 현재 제거한 상태입니다. 하지만 WPML은 설치하여 테스트해보니 사이트 속도에 거의 영향을 미치지 않는 것을 확인할 수 있었습니다(참고). WPML에 대한 자세한 내용은 이 글을 참고해보시기 바랍니다.


댓글 남기기

* 이메일 주소는 공개되지 않습니다.