programing

WORDPRESS: cURL 오류 60: SSL 인증서

lastmemo 2023. 3. 7. 21:01
반응형

WORDPRESS: cURL 오류 60: SSL 인증서

현재 데비안 서버에서 워드프레스 설치를 하고 있습니다.PHP7, 컬 및 Apache2를 설치합니다.

새 확장을 설치하려고 하면 다음 오류 메시지가 나타납니다.

cURL error 60: SSL certificate problem: self signed certificate in certificate chain

유사한 문제를 해결한 후 이를 통해 php.ini를 수정하려고 합니다.

curl.cainfo = /etc/php7.0/cacert.pem

하지만 아파치를 다시 시작해도 여전히 문제가 있습니다.

좋은 생각 있어요?

잘 부탁드립니다

테스트 사이트 내에서 SSL 검증을 사용하지 않도록 설정합니다.

이 행을 파일에 추가하여 이 작업을 수행할 수 있습니다.

[어피아란스]> [테마 에디터]> [기능]php 또는

/wp-content/테마/YOUR_주제/기능php:

add_filter('https_ssl_verify', '__return_false');

이것은 테스트 사이트에서만 추가해 주세요.라이브 사이트에서는 추가하지 말아 주세요.

'sslverify'를 false로 설정하여 WordPress wp_remote_get 요청의 cURL 오류 60: SSL 인증서를 수정합니다.

wp_remote_get($url, array('sslverify' => FALSE));

WordPress CA에 번들을 합니다.WP/wp-includes/certificates.

이번 호에서 설명한 바와 같이 최근까지 WordPress와 함께 제공된 CA 번들은 구식이었습니다. https://core.trac.wordpress.org/ticket/45807

★★sslverify로로 합니다.false는 권장하지 않습니다.대신 번들 업데이트 버전(https://github.com/WordPress/WordPress/tree/master/wp-includes/certificates)을 다운로드하여 Wordpress 폴더에서 대체할 수 있습니다.

최근의 경험에 비추어 볼 때, "증명서 체인의 자기 서명 증명서"라는 메시지가 문제를 정확하게 나타내고 있다고 생각합니다.즉, 접속하려고 하는 SSL 사이트는 cacert.pem에 의해 참조되는 번들에 포함되지 않은 증명서를 체인 내에 가지고 있는 것입니다.

에러에 의해서 자기 서명 증명서라고 보고되기 때문에, 이것은 의미가 있습니다.즉, 다운로드한 cacert.pem 파일에 포함되지 않습니다.

해결책은 접속하려는 사이트의 증명서 체인이 포함된 Base64 인코딩 파일을 가져오는 것이었습니다.

    How to: Use a browser to access the site you are trying to access, click the 
    certificate part of the address (usually to the left of the address box with 
    a lock icon) and the click on whatever your interface supports to see the 
    list of certificates in the chain.  Manually export those certificates to a 
    text file.

그런 다음 텍스트 편집기가 포함된 이 텍스트 파일을 PHP가 CURL 작업에 사용하는 인증서 목록(cacert.pem)에 추가합니다.


워드프레스라고 하셨는데..WordPress v4.9.6에는 ./WordPress Instance\wp-includes\certificates\certificate에서 플러그인을 업그레이드 또는 설치할 때 특히 참조하는 증명서 번들이 있습니다.임시방편으로 위의 텍스트파일(로컬의 자기서명증명서 체인을 포함)을 그 위치에 있는 ca-bundle.crt 파일에 추가했습니다.

한 가지 주의: WordPress를 업그레이드하면 ca-bundle.crt 파일이 덮어쓰기되므로 다른 사용자가 더 나은 솔루션을 제공하지 않는 한 다시 추가해야 합니다.

Local Machine에 WordPress를 설치할 때 동일한 문제가 발생할 경우 필터를 추가하여 문제를 해결했습니다.

<?php
/**
 * Plugin Name: Local Dev CaFile
 * Plugin URI: https://stackoverflow.com/q/44632619/881743
 * Description: Another solution for `SSL certificate problem: self signed certificate in certificate chain apache` error for your local development
 * Version: 1.0
 * Author: John Doe
 * Author URI: https://stackoverflow.com/
 * License: WTFPL
 */

add_filter( 'http_request_args', function ( $args ) {
    if ( getenv('WP_ENV') !== 'development' ) {
        return $args;
    } 

    $args['sslcertificates'] = ini_get( 'curl.cainfo' ) ?? $args['sslcertificates'];

    return $args;
}, 0, 1 );

저장하다path/to/wp-content/plugins/dev-plugin.phpwp-admin에서 플러그인을 활성화하거나 옵션으로 에 삽입할 수 있습니다.

Hope that help that help cheers

http://curl.haxx.se/ca/cacert.pem 에서 이 파일을 다운로드합니다.

파일 위치 사용openssl.cafile=c:/cacert.pem

레퍼런스 - https://github.com/auth0/auth0-PHP#i-am-getting-curl-error-60-ssl-certificate-problem-self-signed-certificate-in-certificate-chain-on-windows

wp-cli 2.4 = > 2.5로부터의 업그레이드가 도움이 되었습니다.(이 https://github.com/wp-cli/profile-command 를 인스톨 했을 경우)

여기 있는 답변 중 어느 것도 해당되지 않았습니다(서버에서 인증서를 암호화함 사용 사용자에게는 해당되지 않을 수 있습니다.최근(2021년 9월 30일)에는 Let's Encrypt Creificates가 만료된 DST Root CA X3를 발견했습니다.컬 오류 60 외에 Rest API 오류와 워드프레스 플러그인이 업데이트되지 않았습니다.Wordpress 설치에서 다음 항목을 업데이트할 수 있습니다.

이 패치는 여기에서 구할 수 있습니다.Wordpress 5.9 (2021년 12월)에서 이용하실 수 있습니다.https://core.trac.wordpress.org/changeset/51883/trunk/src/wp-includes/certificates/ca-bundle.crt

Wordpress의 경우 다음과 같이 사용할 수 있습니다.

$url = "YOUR_ENDPOINT";
$args = array(
        'headers' => array(
            'Authorization' => 'HASH_HERE'
        ),
        'sslverify' => FALSE,
        'data' => array(
            'campaign_id' => $campaign_id
        )
    );

$response = wp_remote_get($url, $args);
$body     = wp_remote_retrieve_body($response);

최근에 이 문제가 발생한 것은 네트워크가 ssl 프록시 트릭을 하기 때문입니다.사내 증명서를 포함한 커스텀 CA 번들이 있었습니다./etc/pki 폴더에 번들되어 있기 때문에 ln -s /etc / pki / tls / certs / ca - bundle . crt / wp - includes / certificates /

이제 시스템을 업데이트할 때마다 업데이트가 유지됩니다.

언급URL : https://stackoverflow.com/questions/44632619/wordpress-curl-error-60-ssl-certificate

반응형