Comments (7)
Can you provide the code you're using to load the cert and set up the client?
from etcd3.
const fs = require('fs');
const { Etcd3 } = require('etcd3');
const rootCertificate = fs.readFileSync(`${__dirname}/etcd.pem`);
const client = new Etcd3({
hosts: 'some.etcd.cluster:2379',
auth: {
username: 'developer',
password: 'developer'
},
credentials: {
rootCertificate
}
});
console.log('getting...');
client.getAll()
.prefix('home')
.strings()
.then(value => {
console.log(value);
});
If I change the hosts
prop to a local instance and drop the other props on the options argument since localhost isn't using SSL/TLS, it connects and works as expected.
from etcd3.
I've played around locally and haven't managed to reproduce your issue. From a quick google, 14094410
looks like it could be a wide range of things (yay for specific errors). Some ideas:
- To confirm, the server is not requiring client cert auth?
- Are you using a recent OpenSSL version on the client?
- Try with the newly released [email protected], which pulls in upstream GRPC updates including several changes to TLS/SSL handling
- Is anything (apache/nginx/haproxy/etc) running in front of etcd?
from etcd3.
- Correct, not using a client cert for auth.
OpenSSL 1.0.2g 1 Mar 2016
System in question is Ubuntu 17.04, this is the version currently installed based on that distro.- Will try and report back.
- No, code is directly accessing the etcd cluster without any proxying.
from etcd3.
@commandline were you able to try the fourth bullet point? Also, grpc continues to be updated, you might give another shot with [email protected] which updates to grpc 1.6.0.
from etcd3.
I've got a similar issue except with as verify failed...
E1002 15:56:08.589165000 140736018240320 ssl_transport_security.c:921] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.
This is with the latest 0.2.5/1.6.0 - dumping the pool Authenticator shows things are in place...
Authenticator {
options:
{ hosts:
[ 'https://sl-us-south-1-portal.4.dblayer.com:23842',
'https://sl-us-south-1-portal.5.dblayer.com:23842' ],
auth: { username: 'root', password: 'SEKRITSTUFFS' },
credentials: { ca: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 43 45 52 54 49 46 49 43 41 54 45 2d 2d 2d 2d 2d 0a 4d 49 49 44 66 54 43 43 41 6d 57 67 41 77 49 42 41 67 49 45 57 64 ... > } },
awaitingToken: Promise { <pending> } }
from etcd3.
Unfortunately this sounds like a (possible) issue in grpc, not this library, so the amount of help I can provide is limited. The message you're seeing is bubbling up from the native code in grpc, you may have better luck opening an issue there.
from etcd3.
Related Issues (20)
- WatchBuilder.create() doesn't reject an error when erred
- Waiting two ttl-periods before declaring a lease lost seems wrong
- When a timeout is happens the node process is hanging and not finalized.
- Need a way to alter the hosts/endpoints at runtime? HOT 1
- Election example from doc elects 2 leaders after etcd restart, starts multiple workers, or fails to elect a leader HOT 3
- How to specify limit and offset? HOT 1
- ./node_modules/@grpc/grpc-js/build/src/server.js Module not found: Can't resolve 'http2' in 'node_modules/@grpc/grpc-js/build/src' HOT 1
- GRPCUnavailableError:UNAVAILABLE: No connection established HOT 1
- This library has no debug or verbose options.
- Set host:port in the source code HOT 2
- Best way to `getAll(keys)`? HOT 1
- Elections probably choose more than one leader HOT 1
- Deadlock when EtcdInvalidAuthTokenError HOT 2
- pkg was pack success, but crash in use pack file, error for rpc.proto file path HOT 1
- Send custom header along with requests
- Lease expiration does not fire delete event HOT 1
- ILeaseTimeToLiveResponse returns an empty array of keys
- break in nodejs v14 HOT 3
- Updates to the repository and fixes but no release HOT 3
- getAll() / MultiRangeBuilder not available under SoftwareTransaction
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from etcd3.