Können wir einen lokalen HTTPS-Server in Mac OS X mit Swift einrichten

Ich möchte einen lokalen HTTP-Server einrichten, der auf meinem Mac OSX-Computer ausgeführt wird und in der Lage sein sollte, Anforderungen zu verarbeiten, die vom Webbrowser kommen. Aber ich bin mir nicht sicher, ob wir HTTPS-Server mit Swift einrichten können. In diesem https://swift.org/server-apis/ gibt es nur Informationen zu HTTP, aber nicht zu HTTPS. Jede Hilfe wird sehr geschätzt

Muss es in Swift geschrieben sein? Entwickeln oder schreiben Sie den Code selbst?
Ja, es muss schnell geschrieben werden. Ich will es selbst schreiben
Bitte beachten Sie, dass Fragen auf Codeebene hier nicht zum Thema gehören und auf StackOverflow gestellt werden sollten.

Antworten (1)

Ja, Apples Swift-Sprache kann verwendet werden, um einen Webserver zu erstellen, der HTTPS-Verbindungen akzeptiert. Siehe Going server-side with Swift Open Source für Apples Einführung in die Entwicklung von Servern.

Mit Swift haben Sie Zugriff auf eine Reihe von integrierten und Drittanbieter-SSL/TLS-Bibliotheken. Die zum Schreiben der Bibliothek verwendete Sprache ist nicht wichtig, solange die Bibliothek eine C-API anbietet.

Network.framework und AFNetworking

Wenn Sie ein Entwickler sind, ziehen Sie in Betracht, das Netzwerk-Framework von Apple zu verwenden . Das Framework behauptet, eine einfachere Unterstützung für sichere Verbindungen bereitzustellen.

Alternativ können Sie auch das Open-Source-Projekt AFNetworking verwenden .

Apples Frameworks

Wenn Sie sich auf die Sicherheitsangebote von Apple konzentrieren möchten , haben Sie die Wahl zwischen:

  • Apples Network.framework (in Beta zum Zeitpunkt der Beantwortung)
  • Apples NSURL*-Klassenfamilie
  • Apples CFNetwork
  • Apples Secure Transport API

Beachten Sie, dass die meisten davon letztendlich auf der Basis des Common Crypto- Codes auf niedriger Ebene basieren.

Transparenter Proxy

Erwägen Sie die Verwendung eines vorhandenen Webservers wie Nginx, httpd oder Caddy, um als transparenter Proxy vor Ihrem eigenen Dienst zu fungieren. Der vorhandene Webserver kann die SSL/TLS-Sicherheit handhaben und HTTP-Anforderungen an Ihren lokal ausgeführten Dienst zurückgeben.

Dies ist eine ziemlich häufige Konfiguration, da sie Ihren Dienst vereinfacht und die Sicherheitslast auf einen gut getesteten vorhandenen Front-End-Server legt.

Kein Entwickler?

Wenn Sie kein Entwickler sind, sollten Sie einen vorgefertigten Webserver mit Unterstützung für (kostenlose) TLS-Zertifikate von Lets Encrypt verwenden. Ein solcher Server ist Caddy:

Caddy ist der HTTP/2-Webserver mit automatischem HTTPS.

Ich möchte nicht auf Bibliotheken von Drittanbietern verweisen, die in (Going Server-side with Swift Open Source) erwähnt wurden. Ich möchte es mit nativem Swift-Code einrichten. Ich werde versuchen, AFNetworking zu verwenden. Danke