walter SSL Support: smtp.lua requires luaossl but OpenBSD has luasec #74

Closed
opened 2025-06-22 18:49:11 +02:00 by Michael · 1 comment
Michael commented 2025-06-22 18:49:11 +02:00 (Migrated from gitea.dragons-at-work.de)

Problem

walter HTTP-Server läuft perfekt, aber E-Mail-Tests schlagen fehl wegen fehlendem SSL-Support für SMTP Port 465.

Current Status

  • HTTP-Server: läuft auf 127.0.0.1:8080
  • Config-Detection: /usr/local/etc/furt/environment geladen
  • SMTP-Config: noreply@dragons-at-work.de erkannt
  • SSL-Library: require('ssl') nicht verfügbar

Technical Details

smtp.lua Requirements:

  • local ssl = require("ssl") -- luaossl API

OpenBSD Packages:

  • walter: pkg_info -Q lua | grep ssl (empty)
  • walter: pkg_info -Q luasec shows luasec-1.2.0 (Available alternative)

luaossl vs luasec API Differences:

  • luaossl (smtp.lua current): local ssl = require("ssl")
  • luasec (OpenBSD available): local ssl = require("ssl.core")

Solution Options

  • walter: doas pkg_add luasec
  • smtp.lua modification: Add compatibility layer for both luaossl and luasec

Option 2: openssl Command Fallback

  • Use system openssl command for SMTP connections
  • Simpler but less integrated

Option 3: STARTTLS (Port 587)

  • Plain connection → STARTTLS → SSL upgrade
  • Might be easier than SSL direct connect

Acceptance Criteria

  • walter kann SSL-SMTP-Verbindungen aufbauen
  • E-Mail-Test funktioniert: walter → mail.dragons-at-work.de:465
  • Health-Check zeigt weiterhin smtp_configured: true
  • Lösung funktioniert auch auf anderen OpenBSD-Systemen

Implementation Steps

  1. Install luasec: doas pkg_add luasec
  2. Test luasec: lua -e require ssl.core
  3. Modify smtp.lua: Add compatibility layer
  4. Test SMTP: End-to-end E-Mail-Versand
  5. Update start.sh: Optional - bessere SSL-Detection

Priority

MEDIUM - walter läuft für HTTP, SSL für vollständige E-Mail-Tests

  • Issue #68: Universal Config Detection (parent issue)
  • karl regression (separate issue)
  • Config-Strategy-Überarbeitung (separate issue)

Technical Context

  • SMTP-Server: mail.dragons-at-work.de:465 (SSL direct)
  • Config: /usr/local/etc/furt/environment (funktional)
  • User: _furt (funktional)
  • Structure: /usr/local/furt/furt-lua/ (korrekt)

Alternative Investigation

  • Port 587 available? STARTTLS might be easier
  • Server-Config: Does mail server support multiple ports?
  • Authentication: Beyond SSL, SMTP auth working?
## Problem walter HTTP-Server läuft perfekt, aber E-Mail-Tests schlagen fehl wegen fehlendem SSL-Support für SMTP Port 465. ## Current Status - ✅ **HTTP-Server:** läuft auf 127.0.0.1:8080 - ✅ **Config-Detection:** /usr/local/etc/furt/environment geladen - ✅ **SMTP-Config:** noreply@dragons-at-work.de erkannt - ❌ **SSL-Library:** require('ssl') nicht verfügbar ## Technical Details ### **smtp.lua Requirements:** - local ssl = require("ssl") -- luaossl API ### **OpenBSD Packages:** - walter: pkg_info -Q lua | grep ssl (empty) - walter: pkg_info -Q luasec shows luasec-1.2.0 (Available alternative) ### **luaossl vs luasec API Differences:** - luaossl (smtp.lua current): local ssl = require("ssl") - luasec (OpenBSD available): local ssl = require("ssl.core") ## Solution Options ### **Option 1: luasec Adaptation (Recommended)** - walter: doas pkg_add luasec - smtp.lua modification: Add compatibility layer for both luaossl and luasec ### **Option 2: openssl Command Fallback** - Use system openssl command for SMTP connections - Simpler but less integrated ### **Option 3: STARTTLS (Port 587)** - Plain connection → STARTTLS → SSL upgrade - Might be easier than SSL direct connect ## Acceptance Criteria - [ ] walter kann SSL-SMTP-Verbindungen aufbauen - [ ] E-Mail-Test funktioniert: walter → mail.dragons-at-work.de:465 - [ ] Health-Check zeigt weiterhin smtp_configured: true - [ ] Lösung funktioniert auch auf anderen OpenBSD-Systemen ## Implementation Steps 1. Install luasec: doas pkg_add luasec 2. Test luasec: lua -e require ssl.core 3. Modify smtp.lua: Add compatibility layer 4. Test SMTP: End-to-end E-Mail-Versand 5. Update start.sh: Optional - bessere SSL-Detection ## Priority **MEDIUM** - walter läuft für HTTP, SSL für vollständige E-Mail-Tests ## Related Issues - Issue #68: Universal Config Detection (parent issue) - karl regression (separate issue) - Config-Strategy-Überarbeitung (separate issue) ## Technical Context - **SMTP-Server:** mail.dragons-at-work.de:465 (SSL direct) - **Config:** /usr/local/etc/furt/environment (funktional) - **User:** _furt (funktional) - **Structure:** /usr/local/furt/furt-lua/ (korrekt) ## Alternative Investigation - **Port 587 available?** STARTTLS might be easier - **Server-Config:** Does mail server support multiple ports? - **Authentication:** Beyond SSL, SMTP auth working?
Michael commented 2025-06-23 08:33:34 +02:00 (Migrated from gitea.dragons-at-work.de)

RESOLVED: walter SSL Support erfolgreich implementiert

Solution Summary

walter SSL-Problem komplett gelöst durch universelle smtp.lua mit Auto-Detection für luaossl (Arch) und luasec (OpenBSD).

Implementation Details

  • Universal SSL Compatibility Layer - Automatische Erkennung verfügbarer SSL-Libraries
  • walter: luasec Integration - Native OpenBSD Package (luasec-1.2.0)
  • karl: luaossl Backward-Compatibility - Bestehende Funktionalität erhalten
  • API-Abstraction - Transparente Behandlung unterschiedlicher SSL-APIs

Test Results

karl (Arch Linux):

curl -X POST http://localhost:8080/v1/mail/send -H "Content-Type: application/json" -d '{"name":"Karl Test","email":"test@example.com","subject":"luaossl Test","message":"Testing"}'
# Result: {"success":true,"message":"Mail sent","request_id":"1750657091-8561"}
# E-Mail erfolgreich empfangen mit DKIM auth=pass

walter (OpenBSD):

doas -u _furt sh -c "cd /usr/local/furt/furt-lua && ./scripts/start.sh"
curl -X POST http://127.0.0.1:8080/v1/mail/send -H "Content-Type: application/json" -d '{"name":"Walter Test","email":"test@example.com","subject":"luasec Test","message":"Testing"}'
# Result: {"success":true,"message":"Mail sent","request_id":"1750658185-9835"} 
# E-Mail erfolgreich empfangen mit DKIM auth=pass

Production Readiness

  • Service-User-Compatible - Läuft unter _furt user
  • Config-Detection - /usr/local/etc/furt/environment funktional
  • SMTP SSL Port 465 - Funktioniert auf beiden Systemen
  • Multi-Distribution - Arch Linux + OpenBSD Support

Tech-Sovereignty Compliance

  • No OpenSSL Command Dependencies - Pure Lua-SSL-Implementation
  • University-backed Libraries - luasec (academic), luaossl (community)
  • Package-Manager-Integration - Native OS-Packages, keine custom builds

walter ist production-ready für OpenBSD-Server deployment! 🚀

## ✅ RESOLVED: walter SSL Support erfolgreich implementiert ### **Solution Summary** **walter SSL-Problem komplett gelöst** durch universelle smtp.lua mit Auto-Detection für luaossl (Arch) und luasec (OpenBSD). ### **Implementation Details** - ✅ **Universal SSL Compatibility Layer** - Automatische Erkennung verfügbarer SSL-Libraries - ✅ **walter: luasec Integration** - Native OpenBSD Package (luasec-1.2.0) - ✅ **karl: luaossl Backward-Compatibility** - Bestehende Funktionalität erhalten - ✅ **API-Abstraction** - Transparente Behandlung unterschiedlicher SSL-APIs ### **Test Results** **karl (Arch Linux):** ```bash curl -X POST http://localhost:8080/v1/mail/send -H "Content-Type: application/json" -d '{"name":"Karl Test","email":"test@example.com","subject":"luaossl Test","message":"Testing"}' # Result: {"success":true,"message":"Mail sent","request_id":"1750657091-8561"} # E-Mail erfolgreich empfangen mit DKIM auth=pass ``` **walter (OpenBSD):** ```bash doas -u _furt sh -c "cd /usr/local/furt/furt-lua && ./scripts/start.sh" curl -X POST http://127.0.0.1:8080/v1/mail/send -H "Content-Type: application/json" -d '{"name":"Walter Test","email":"test@example.com","subject":"luasec Test","message":"Testing"}' # Result: {"success":true,"message":"Mail sent","request_id":"1750658185-9835"} # E-Mail erfolgreich empfangen mit DKIM auth=pass ``` ### **Production Readiness** - ✅ **Service-User-Compatible** - Läuft unter _furt user - ✅ **Config-Detection** - /usr/local/etc/furt/environment funktional - ✅ **SMTP SSL Port 465** - Funktioniert auf beiden Systemen - ✅ **Multi-Distribution** - Arch Linux + OpenBSD Support ### **Tech-Sovereignty Compliance** - ✅ **No OpenSSL Command Dependencies** - Pure Lua-SSL-Implementation - ✅ **University-backed Libraries** - luasec (academic), luaossl (community) - ✅ **Package-Manager-Integration** - Native OS-Packages, keine custom builds **walter ist production-ready für OpenBSD-Server deployment!** 🚀
michael added this to the v0.1.2 - Gateway Basics milestone 2025-08-14 05:21:02 +02:00
michael added
status
done
and removed
status
to-go
labels 2025-08-14 07:23:17 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: DAW/furt#74
No description provided.