Ошибка доступа к общедоступному объекту 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."
Вот что я делаю.
- В коде NodeJS я проверяю конечную точку API при аутентификации с использованием сертификатов SSL
- У меня есть сертификат SSL, хранящийся в облачном хранилище GCP и сделанный общедоступным (только для тестирования), следуя приведенным здесь инструкциям.
- Инструкция по доступу к этому объекту приведена здесь.
С помощью
gsutil
Я могу получить доступ к сертификату.$ gsutil ls -r gs://[BUCKET_NAME]/[SSLCERT].pem
gs://[BUCKET_NAME]/[SSLCERT].pem
Когда я получаю доступ к SSL-сертификату из кода NodeJS, я получаю вышеуказанную ошибку. URL для доступа к файлу:
http://storage.googleapis.com/[BUCKET_NAME]/[SSLCERT].pem
Вместо облачного хранилища, если я получаю доступ к сертификату с локального диска и запускаю код 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();