Jimini
PCGH-Community-Veteran(in)
[gelöst] Problem mit Prosody und verschlüsselten Verbindungen
Aloha,
nachdem ejabberd sich erneut als ziemlich zickiges Stück Software herausgestellt hat, bin ich auf Prosody umgestiegen. Wenn ich unverschlüsselte Verbindungen von den Clients zum Server zulasse, funktioniert alles wunderbar, nur mit aktivierter will partout keine Verbindung aufgebaut werden. Aus irgendeinem Grund scheinen die Clients die selbstsignierten Zertifikate nicht zu akzeptieren.
Meine Config:
Fehler werden keine geloggt. Versucht sich ein Client zu verbinden, erscheint im Debuglog folgendes:
Pidgin vermerkt folgende Fehler:
Die Zertifikate habe ich wie hier beschrieben erstellt.
Hat jemand eine Idee, wo der Fehler liegen könnte?
MfG Jimini
Nachtrag:
Nachdem ich nun weiter recherchiert habe, bin ich auf die Lösung gestoßen - offensichtlich scheint Prosodys Tool zum Erstellen von Zertifikaten nicht ganz sauber mit Pidgin zusammenzuarbeiten. Mit Psi hingegen klappte das Verbinden problemlos.
Es waren folgende Befehle zum Erstellen eines neuen Zertifikats notwendig:
Danach meckerte Pidgin nicht mehr und konnte sich problemlos mit dem Server verbinden
Aloha,
nachdem ejabberd sich erneut als ziemlich zickiges Stück Software herausgestellt hat, bin ich auf Prosody umgestiegen. Wenn ich unverschlüsselte Verbindungen von den Clients zum Server zulasse, funktioniert alles wunderbar, nur mit aktivierter will partout keine Verbindung aufgebaut werden. Aus irgendeinem Grund scheinen die Clients die selbstsignierten Zertifikate nicht zu akzeptieren.
Meine Config:
Code:
admins = { "admin@virtualhost1" }
modules_enabled = {
"roster"; -- Allow users to have a roster. Recommended ;)
"saslauth"; -- Authentication for clients and servers. Recommended if you want to log in.
"tls"; -- Add support for secure TLS on c2s/s2s connections
"dialback"; -- s2s dialback support
"disco"; -- Service discovery
"private"; -- Private XML storage (for room bookmarks, etc.)
"vcard"; -- Allow users to set vCards
--"privacy"; -- Support privacy lists
--"compression"; -- Stream compression (Debian: requires lua-zlib module to work)
"version"; -- Replies to server version requests
"uptime"; -- Report how long server has been running
"time"; -- Let others know the time here on this server
"ping"; -- Replies to XMPP pings with pongs
"pep"; -- Enables users to publish their mood, activity, playing music and more
"register"; -- Allow users to register on this server using a client and change passwords
"admin_adhoc"; -- Allows administration via an XMPP client that supports ad-hoc commands
--"admin_telnet"; -- Opens telnet console interface on localhost port 5582
--"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
--"http_files"; -- Serve static files from a directory over HTTP
"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
--"groups"; -- Shared roster support
--"announce"; -- Send announcement to all online users
"welcome"; -- Welcome users who register accounts
"watchregistrations"; -- Alert admins of registrations
--"motd"; -- Send a message to users when they log in
"legacyauth"; -- Legacy authentication. Only used by some old clients and bots.
};
modules_disabled = {
};
allow_registration = false;
daemonize = true;
pidfile = "/var/run/prosody/prosody.pid";
ssl = {
key = "/etc/prosody/certs/cert.key";
certificate = "/etc/prosody/certs/cert.crt";
}
c2s_require_encryption = true
s2s_secure_auth = false
authentication = "internal_plain"
storage = "sql" -- Default is "internal" (Debian: "sql" requires one of the
sql = { driver = "MySQL", database = "prosody", username = "USER", password = "PASS", host = "localhost" }
log = {
-- Log files (change 'info' to 'debug' for debug logs):
debug = "/var/log/prosody/prosody.debug";
info = "/var/log/prosody/prosody.log";
error = "/var/log/prosody/prosody.err";
-- Syslog:
-- { levels = { "error" }; to = "syslog"; };
}
VirtualHost "virtualhost1"
VirtualHost "virtualhost2"
Fehler werden keine geloggt. Versucht sich ein Client zu verbinden, erscheint im Debuglog folgendes:
Code:
Jun 27 07:08:42 socket debug server.lua: accepted new client connection from PRIVATE_IP_ADDRESS:59539 to 5222
Jun 27 07:08:42 c2s2923750 info Client connected
Jun 27 07:08:42 c2s2923750 debug Client sent opening <stream:stream> to virtualhost1
Jun 27 07:08:42 c2s2923750 debug Sent reply <stream:stream> to client
Jun 27 07:08:42 c2s2923750 debug Received[c2s_unauthed]: <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'>
Jun 27 07:08:42 socket debug server.lua: we need to do tls, but delaying until send buffer empty
Jun 27 07:08:42 c2s2923750 debug TLS negotiation started for c2s_unauthed...
Jun 27 07:08:42 socket debug server.lua: attempting to start tls on tcp{client}: 0x2920088
Jun 27 07:08:42 socket debug server.lua: ssl handshake done
Jun 27 07:08:42 socket debug server.lua: client PRIVATE_IP_ADDRESS:59539 read error: closed
Jun 27 07:08:42 c2s2923750 info Client disconnected: closed
Jun 27 07:08:42 c2s2923750 debug Destroying session for (unknown) ((unknown)@virtualhost1): closed
Jun 27 07:08:42 socket debug server.lua: closed client handler and removed socket from list
Pidgin vermerkt folgende Fehler:
(07:28:50) nss: CERT 1. E=info@virtualhost1,CN=hostname_meines_servers,OU=XMPP Department,O=Your Organisation,L=The Internet,C=DE [Certificate Authority]:
(07:28:50) nss: ERROR -8156: SEC_ERROR_CA_CERT_INVALID
(07:28:50) nss: ERROR -8102: SEC_ERROR_INADEQUATE_KEY_USAGE
(07:28:50) nss: ERROR -8172: SEC_ERROR_UNTRUSTED_ISSUER
(07:28:50) certificate: Failed to verify certificate for virtualhost1
Das Zertifikat für XYZ konnte nicht überprüft werden. Die präsentierte Zertifikatskette ist ungültig.
Die Zertifikate habe ich wie hier beschrieben erstellt.
Hat jemand eine Idee, wo der Fehler liegen könnte?
MfG Jimini
Nachtrag:
Nachdem ich nun weiter recherchiert habe, bin ich auf die Lösung gestoßen - offensichtlich scheint Prosodys Tool zum Erstellen von Zertifikaten nicht ganz sauber mit Pidgin zusammenzuarbeiten. Mit Psi hingegen klappte das Verbinden problemlos.
Es waren folgende Befehle zum Erstellen eines neuen Zertifikats notwendig:
openssl genrsa -out /etc/prosody/certs/prosody.key 2048
openssl req -new -x509 -key /etc/prosody/certs/prosody.key -out /etc/prosody/certs/prosody.cert -days 3650
Danach meckerte Pidgin nicht mehr und konnte sich problemlos mit dem Server verbinden
Zuletzt bearbeitet: