💾 Archived View for bbs.geminispace.org › u › gemalaya › 5598 captured on 2023-12-28 at 17:24:31. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-11-14)
-=-=-=-=-=-=-
Re: "SNI for misfin: I am getting a "you didn't provide SNI"..."
@clseibold When you use "make-cert", the 3rd argument is the "hostname", and it's written in the certificate as the "X509v3 Subject Alternative Name" in the certificate, here's what it shows for a "localhost" cert:
X509v3 extensions: X509v3 Subject Alternative Name: DNS:localhost
When you run a server with "receive-as", misfin opens the certificate and reads that value (the "DNS"), the code is in misfin/identity.py (LocalIdentity, in the __init__):
I plan to rewrite this part because when you run a server for an infinite number of identities (recipients), you'd most definitely want to have more control over which IP you listen on.
Sep 26 · 3 months ago
🚀 clseibold · Sep 26 at 19:37:
@gemalaya Right, I'm aware that that's what it does. I've explained in the other thread why the bind address *has to* be different from the SubjAltName, because my system cannot and will never work with this assumption. There's no way around it. I was required to change the bind address because of this assumption. I cannot use my public ip address on my own network because I don't have loopback (I believe that's what it's called when you use your own public ip from within your own network).
@clseibold So yeah, right now, the hostname value that you pass when you create the certificate is the hostname that misfin will bind the socket to.
But note that you can also pass an IP address, i just did that and it works
misfin make-cert ip "IP" 192.168.1.28 28.pem misfin receive-as 28.pem Receiving for: IP (ip@192.168.1.28) Listening on: 192.168.1.28
🚀 clseibold · Sep 26 at 19:42:
@gemalaya Yes, it works, but now your certificate is incorrect. Your certificate has to be your domain name. Also, the bind address is what you want to listen on. I'm actually unsure if it needs to be the public IP, or the private IP of the computer (I think the private IP of the computer will work, actually).
Regardless, the cert has to be the domain name or every other server you send mail to will end up failing the verification.
@clseibold You're right. I'm working on a service command that will let you serve multiple identities and store messages, it's not too much work.
SNI for misfin: I am getting a "you didn't provide SNI" error in one misfin server when I try to access it via the Python client, apparently that uses a different ssl library. I wonder if that is intended, to work it has to be active in both the client and the server