Ошибка доступа к общедоступному объекту GCP Cloud Storage

Я получаю следующую ошибку при чтении файла сертификата SSL из GCP Cloud Storage.

* Connected to [my.website.com] (A.b.C.D) port 443 (#0)
* found 6 certificates in /home/<username>/[CAINFO].crt
* found 597 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* error reading X.509 key or certificate file: Error while reading file.
* Closing connection 0
Error: SSL connect error
    at Error (native)
file." 

Вот что я делаю.

  1. В коде NodeJS я проверяю конечную точку API при аутентификации с использованием сертификатов SSL
  2. У меня есть сертификат SSL, хранящийся в облачном хранилище GCP и сделанный общедоступным (только для тестирования), следуя приведенным здесь инструкциям.
  3. Инструкция по доступу к этому объекту приведена здесь.
  4. С помощью gsutilЯ могу получить доступ к сертификату.

    $ gsutil ls -r gs://[BUCKET_NAME]/[SSLCERT].pemgs://[BUCKET_NAME]/[SSLCERT].pem

  5. Когда я получаю доступ к SSL-сертификату из кода NodeJS, я получаю вышеуказанную ошибку. URL для доступа к файлу: http://storage.googleapis.com/[BUCKET_NAME]/[SSLCERT].pem

  6. Вместо облачного хранилища, если я получаю доступ к сертификату с локального диска и запускаю код NodeJS, он работает нормально. Итак, сертификат действителен.

Схема моего кода:

const Curl = require('node-libcurl').Curl;
const curl = new Curl();

const URL = 'https://api-end-point.com';

// let sslcert = '/home/path/to/[SSLCERT].pem';  << this works
let sslcert = 'http://storage.googleapis.com/[BUCKET_NAME]/[SSLCERT].pem';  << NOT working

curl.setOpt('URL', URL);
... 
curl.setOpt('SSLCERT', sslcert);
... 

curl.on('end', function(statusCode, body, headers) {

    console.info("Status Code: " + statusCode);
    console.info(body.length);
    this.close();
}); 

curl.on('error', (err) => {
    console.log(err);
}); 

curl.perform();

0 ответов

Другие вопросы по тегам