mirror of
https://github.com/chatmail/relay.git
synced 2026-05-18 09:48:58 +00:00
feat: support self-signed chatmail relays (#855)
feat: support self-signed TLS via underscore domain convention Domains starting with "_" (e.g. _chat.example.org) automatically use self-signed TLS certificates instead of ACME/Let's Encrypt. The TLS mode is derived from the domain name — no separate config option needed. Internally, when config.tls_cert_mode is "self" (underscore domain): - Generate self-signed certificates via openssl - Set Postfix smtp_tls_security_level to "encrypt" (opportunistic TLS) - Add smtp_tls_policy_map entry for underscore domains - Skip ACME, MTA-STS and www CNAME checks in `cmdeploy dns` - Serve /new via GET (not redirect to dcaccount:) with rate-limiting (nginx limit_req, 2r/s burst=5) - Return dclogin: URLs with ic=3 (AcceptInvalidCertificates) from /new - Render QR codes client-side via JavaScript and qrcode-svg - Use config.tls_cert_path/tls_key_path in Postfix, Dovecot and nginx templates instead of hardcoded ACME paths
This commit is contained in:
21
www/src/dclogin.js
Normal file
21
www/src/dclogin.js
Normal file
@@ -0,0 +1,21 @@
|
||||
/* dclogin profile generator for self-signed chatmail relays.
|
||||
* Fetches credentials from /new and generates a dclogin: QR code.
|
||||
* Requires qrcode-svg.min.js to be loaded first.
|
||||
*/
|
||||
(function () {
|
||||
function generateProfile() {
|
||||
fetch('/new')
|
||||
.then(function (r) { return r.json(); })
|
||||
.then(function (data) {
|
||||
var url = data.dclogin_url;
|
||||
var link = document.getElementById('dclogin-link');
|
||||
link.href = url;
|
||||
var qrLink = document.getElementById('qr-link');
|
||||
qrLink.href = url;
|
||||
var qrCode = document.getElementById('qr-code');
|
||||
var qr = new QRCode({ content: url, width: 300, height: 300, padding: 1, join: true });
|
||||
qrCode.innerHTML = qr.svg();
|
||||
});
|
||||
}
|
||||
generateProfile();
|
||||
})();
|
||||
Reference in New Issue
Block a user