mirror of
https://github.com/chatmail/relay.git
synced 2026-05-10 16:04:37 +00:00
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
22 lines
852 B
JavaScript
22 lines
852 B
JavaScript
/* 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();
|
|
})();
|