2016-10-21 4 views
3

Ich habe ssl-Verschlüsselung in meinem cassandra Knoten aktiviert, und ich versuche, herauszufinden, wie zu meinem Knoten mit ssl mit cqlsh verbinden:Mit cqlsh mit ssl

Wenn ich laufe ./cqlsh --ssl ich die folgende Fehlermeldung erhalten:

Validation is enabled; SSL transport factory requires a valid certfile to be specified. Please provide path to the certfile in [ssl] section as 'certfile' option in /root/.cassandra/cqlshrc (or use [certfiles] section) or set SSL_CERTFILE environment variable. 

ich folgte dem Link auf https://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureCqlshSSL_t.html:

[authentication] 
username = fred 
password = !!bang!!$ 

ich im Stammordner bin zu halten, so dass jeder Benutzer anmelden und den gemeinsamen Zugriff auf Ordner (anstatt in meinem Benutzerverzeichnis). Wie lautet das Passwort in diesem Fall? Muss ich mein Passwort eingeben ?!

certfile = ~/keys/node0.cer.pem 

Benötige ich dieses certfile auf die Trusts der cassandra hinzuzufügen, oder kann ich nur cassandra Knoten Zertifikat selbst hinzufügen?

Ich benutze Cassandra 2.2.7.

Antwort

2

Es gibt ein paar Dinge nötig, um diese Arbeit zu machen:

However what would be the password in this case? Do I need to put my password?!

In Ihrem cqlshrc Datei, dies bezieht sich auf den Benutzernamen und das Passwort für die Authentifizierung/Autorisierung. Sie müssen es hier nicht wirklich hinzufügen. Wenn Sie dies nicht tun, denken Sie daran, die Flags -u username -p password in der cqlsh-Befehlszeile anzugeben.

Will I need to add this certfile to the cassandra's truststore, or can I just add cassandra nodes certificate itself.

Für Client-zu-Knoten-SSL müssen Sie den Truststore nicht wirklich verwenden.

Wenn Sie die Schritte in diesem Dokument oben ausgeführt haben, sollten Sie bereits den privaten Schlüsselteil des Zertifikats in Ihrer Keystore-Datei haben. Dann hätten Sie den öffentlichen Teil dieses Zertifikats in eine Datei exportiert. Sie hätten dann diese Datei in eine PKCS12-Datei konvertiert, um sie mit cqlsh zu verwenden. Gemessen an den Dateinamen, die Sie oben verwenden, sieht es so aus, als hätten Sie das getan.

Als Beispiel ist hier ein Beispiel cqlshrc-Datei, die zu einem 2.2.x-Cluster verbinden soll:

[connection] 
factory = cqlshlib.ssl.ssl_transport_factory 

[ssl] 
certfile = ~/certs/dev-cluster1.cer.pem 
validate = false 

[authentication] 
username = cassuser 
password = 12345 

Vergewissern Sie sich, dass Sie die ssl_transport_factory setzen.

+0

Interessant, wenn mein Benutzername und Passwort falsch sind, funktioniert es immer noch! Aber wenn es fehlt, fragt es immer noch nach Benutzername, Passwort. Was denkst du könnte das Problem sein? – user1692342