Sv translation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IntroductionSSL or TLS Certificates are a known industry standard for encryption and security. They are used on basically every website today. This page aims to explain the different scenarios of implementing SSL Certificates on your jtel acd, as well as provide a walkthrough on how to do the installation itself.
Your jtel ACD With SSLAccess to your jtel ACD can be secured by SSL. A certificate is installed on the jtel Load Balancer to enable SSL-Encryption when accessing either your jtel portal, Chat or WhatsApp API, REST or SOAP API. In short anything you want to make available securely via the public internet. There are some differences depending on the location of your system. If you have purchased a license within the jtel Cloud environment, your certificate will be provided and managed by jtel year-round. However, for example on On Premise systems, you will have to provide your own SSL-Certificate. As for our Partners Cloud systems, the certificate might be provided by you, or our partner. jtel CloudThe certificate is provided by jtel and managed year-round. jtel Partner CloudOn the cloud systems of our partners, the certificate will either be provided by our partner, or by you. jtel On PremiseThe certificate will be provided by you. PreparationsIf you are providing the SSL certificate for your jtel installation, the following things described below are required.
Naming the Website / DNSBefore acquiring a new certificate or using a preexisting one, a name for the jtel Portal website must be chosen. Our example name is jtel.example.com This name must then be configured in your Public DNS-Zone (Azure DNS, Google DNS, or the DNS of your internet provider) to ensure that traffic to this internet domain name will be routed to your gateway / firewall / router which handles your external IP address. The IP-Address below will be the Public IP-Address of your gateway / firewall. The record type "A" indicates an "Address Record" and it is used to point the subdomain jtel.example.com to the IP address of the gateway / firewall / router.
Routing https requestsThe gateway / firewall / router will need to be configured to route incoming https requests to port 443 to the internal IP address of the jtel load balancer. This is usually achieved using 1:1 or Port Forwarding rules in the gateway / firewall concerned (how exactly to do this may vary from manufacturer to manufacturer and is not discussed in this article). The certificate will be installed on the jtel load balancer which will decrypt the https-request and route the traffic to the webserver or chatserver using http. A simplified explanation of the route could look as follows:
SSL Certificate ChainAn SSL certificate chain consists of several parts which form a chain of certificates.
The server certificate contains the server's public key, which can be used to encrypt information which only the server will be able to decrypt (at least today, 11.07.2023, that is still the case but improvements in quantum computing may change this in the future ...). The verification of the certificate chain uses the reverse direction:
The full certificate chain is required for installation. This consists of more than one section:
TLSThe last step is using TLS to establish secure communications. This is a short explanation of how this works (by no means technically complete - there are plenty of good references out there if you really want to find out exactly how it works, however this explanation captures the essence of what is happening):
InstallationIf your system previously had no certificate installed and was running via http, start here. If you are exchanging your certificate before its expiry and your jtel ACD was configured for https before, start here.
Change the haproxy configuration to httpsFor systems with one Load Balancer and HAProxy use this. For redundant systems with two Load Balancers and HaProxys use this.
Create the haproxy.pem fileThe certificate chain will be put together with a simple cat command in Linux.
TestsAfter finishing, test access with your new https URL. Example URL Adminhttps://jtel.example.com/CarrierPortal/admin Example URL Clienthttps://jtel.example.com/CarrierPortal/login/<ResellerUID>/<ClientUID> Further InformationFurther information regarding security and encryption can be found on these pages: SSL/TLS Certificates - Self-signed certificate SSL/TLS Certificates - Let's Encrypt Certificate SSL/TLS Certificates - OCSP stapling SSL/TLS Certificates - Connecting to the outside world SSL/TLS Certificates - Configure haproxy for several subdomains Useful openssl commandsopenssl can be used to for example ensure that the end_entity_cetificate.crt and private_key.key match. It can also be used to ensure that the private key is not corrupted and to check the validity of the certificate itself. Use the following commands if needed: Checking the private key
End entity and private key match
Checking the certificate validity
Converting .pfx Certificates to .pem format
|
...
Sv translation | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EinführungSSL- oder TLS-Zertifikate sind ein bekannter Industriestandard für Verschlüsselung und Sicherheit. Sie werden heute auf praktisch jeder Website verwendet. Auf dieser Seite werden die verschiedenen Szenarien für die Implementierung von SSL-Zertifikaten mit Ihrer jtel ACD erläutert und eine Anleitung für die Installation gegeben.
Ihre jtel ACD Mit SSLDer Zugang zu Ihrer jtel ACD kann durch SSL gesichert werden. Ein Zertifikat wird auf dem jtel Load Balancer installiert, um SSL-Verschlüsselung beim Zugriff auf Ihr jtel Portal, Chat oder WhatsApp API, REST oder SOAP API zu ermöglichen. Kurz gesagt, alles, was Sie sicher über das öffentliche Internet zugänglich machen wollen. Je nach Standort Ihres Systems gibt es einige Unterschiede. Wenn Sie eine Lizenz in der jtel Cloud-Umgebung erworben haben, wird Ihr Zertifikat das ganze Jahr über von jtel bereitgestellt und verwaltet. Bei On-Premise-Systemen müssen Sie jedoch Ihr eigenes SSL-Zertifikat bereitstellen. Bei den Cloud-Systemen unserer Partner kann das Zertifikat von Ihnen oder von unserem Partner bereitgestellt werden. jtel CloudDas Zertifikat wird von jtel bereitgestellt und ganzjährig verwaltet. jtel Partner CloudBei den Cloud-Systemen unserer Partner wird das Zertifikat entweder von unserem Partner oder von Ihnen bereitgestellt. jtel On PremiseDas Zertifikat wird von Ihnen zur Verfügung gestellt. VorbereitungWenn Sie das SSL-Zertifikat für Ihre jtel-Installation zur Verfügung stellen, sind die folgenden Dinge erforderlich, die im Folgenden beschrieben werden.
Benennen der Website / DNSBevor Sie ein neues Zertifikat erwerben oder ein bereits vorhandenes verwenden, müssen Sie einen Namen für die Website des jtel Portals wählen. Unser Beispielname ist jtel.beispiel.com Dieser Name muss dann in Ihrer öffentlichen DNS-Zone (Azure DNS, Google DNS oder das DNS Ihres Internet-Providers) konfiguriert werden, um sicherzustellen, dass der Datenverkehr zu diesem Internet-Domain-Namen zu Ihrem Gateway/Firewall/Router geleitet wird, der Ihre externe IP-Adresse verwaltet. Die unten stehende IP-Adresse ist die öffentliche IP-Adresse Ihres Gateways / Ihrer Firewall. Der Eintragstyp "A" steht für einen "Adresseintrag" und wird verwendet, um die Subdomain jtel.beispiel.com auf die IP-Adresse des Gateways / der Firewall / des Routers zu verweisen.
Routen von https AnfragenDas Gateway / die Firewall / der Router muss so konfiguriert werden, dass eingehende https-Anfragen an Port 443 an die interne IP-Adresse des jtel Load Balancer weitergeleitet werden. Dies wird in der Regel durch 1:1 oder Port-Weiterleitungsregeln im betreffenden Gateway / in der Firewall erreicht (wie genau dies zu bewerkstelligen ist, kann von Hersteller zu Hersteller variieren und wird in diesem Artikel nicht behandelt). Das Zertifikat wird auf dem jtel Load Balancer installiert, der die https-Anfrage entschlüsselt und den Datenverkehr per http an den Webserver, Chatserver etc. weiterleitet. Eine vereinfachte Erklärung der Route könnte wie folgt aussehen:
SSL ZertifikatsketteEine SSL-Zertifikatskette besteht aus mehreren Teilen, die eine Kette von Zertifikaten bilden.
Das Serverzertifikat enthält den öffentlichen Schlüssel des Servers, mit dem Informationen verschlüsselt werden können, die nur der Server entschlüsseln kann (zumindest ist das heute, am 11.07.2023, noch der Fall, aber Verbesserungen im Quantencomputing könnten dies in Zukunft ändern ...). Die Überprüfung der Zertifikatskette erfolgt in umgekehrter Richtung:
Die vollständige Zertifikatskette ist für die Installation erforderlich. Diese besteht aus mehr als einem Abschnitt:
TLSThe last step is using TLS to establish secure communications. This is a short explanation of how this works (by no means technically complete - there are plenty of good references out there if you really want to find out exactly how it works, however this explanation captures the essence of what is happening):
InstallationIf your system previously had no certificate installed and was running via http, start here. If you are exchanging your certificate before its expiry and your jtel ACD was configured for https before, start here. Anchor | | http |
Der private Schlüssel wird zur Entschlüsselung der eingehenden Nachrichten verwendet, die mit dem im Zertifikat enthaltenen öffentlichen Schlüssel verschlüsselt wurden. |
TLS
Der letzte Schritt ist die Verwendung von TLS, um eine sichere Kommunikation herzustellen.
Dies ist eine kurze Erläuterung der Funktionsweise (keineswegs technisch vollständig - es gibt viele gute Referenzen, wenn Sie wirklich herausfinden wollen, wie es genau funktioniert, aber diese Erklärung fasst das Wesentliche zusammen, was passiert):
- Der Client kontaktiert den Server über Port 443 und fordert eine sichere Verbindung an
- Der Server antwortet mit seiner Zertifikatskette (ohne den privaten Schlüssel)
- Der Client verifiziert die Zertifikatskette wie oben beschrieben
- Der Client generiert einen zufälligen Chiffrierschlüssel, den er an den Server sendet, nachdem er ihn mit dem im Zertifikat angegebenen öffentlichen Schlüssel des Servers verschlüsselt hat.
- Nur der Server kann diesen mit Hilfe des privaten Schlüssels entschlüsseln. Anschließend verschlüsselt er mit dem vom Client generierten Schlüssel einen Sitzungsschlüssel, den er an den Client zurücksendet.
- Nur der Client kennt den von ihm verwendeten zufälligen Verschlüsselungsschlüssel und kann daher den Sitzungsschlüssel entschlüsseln.
- Nun wird der Sitzungsschlüssel festgelegt, und die Ende-zu-Ende-Verschlüsselung verwendet den symmetrischen Sitzungsschlüssel für die Dauer der TCP-Verbindung zur Verschlüsselung aller Daten.
Installation
Wenn ihr System zuvor kein Zertifikat installiert hatte und über http lief, beginnen Sie hier. Wenn Sie Ihr Zertifikat vor dessen Ablauf austauschen und Ihre jtel ACD zuvor für https konfiguriert war, beginnen Sie hier
Anchor | ||||
---|---|---|---|---|
|
Ändern Sie die Haproxy-Konfiguration auf https
Für Systeme mit einem Load Balancer und HAProxy verwenden Sie dies.
Für redundante Systeme mit zwei Load Balancern und HaProxys verwenden Sie dies
Change the haproxy configuration to https
For systems with one Load Balancer and HAProxy use this.
For redundant systems with two Load Balancers and HaProxys use this.
Anchor | ||||
---|---|---|---|---|
|
haproxy.pem
fileDatei erstellen
Die Zertifikatskette wird unter Linux mit einem einfachen cat-Befehl zusammengestelltThe certificate chain will be put together with a simple cat command in Linux.
Code Block | ||
---|---|---|
| ||
# CreateErstellen aSie backupbei ofBedarf theein currentBackup haproxy.pem file if requiredder aktuellen haproxy.pem-Datei cp /etc/haproxy/haproxy.pem /<backup-location>/haproxy.pem # Erstellen Sie Builddie theZertifikatsdatei haproxy.pem Certificate file cat end_entity_cetificate.crt intermediate_certificate.crt root_certificate.crt private_key.key > haproxy.pem # copy theKopieren Sie die Datei haproxy.pem filean toden therichtigen correctOrt locationauf ondem the Load Balancer cp <your-path-to-.pem>/haproxy.pem /etc/haproxy/haproxy.pem # changedie the file access rightsDateizugriffsrechte ändern cd /etc/haproxy/ chmod 400 haproxy.pem # haproxy reload the haproxy systemctl reload haproxy |
Tests
After finishing, test access with your new https Testen Sie anschließend den Zugriff mit Ihrer neuen https-URL.
ExampleBeispiel URL Admin
https://jtel.example.com/CarrierPortal/admin
Example URLBeispielURL Client
https://jtel.example.com/CarrierPortal/login/<ResellerUID>/<ClientUID>
Further Information
Weitere Information
Weitere Informationen zu Sicherheit und Verschlüsselung finden Sie auf diesen SeitenFurther information regarding security and encryption can be found on these pages:
SSL/TLS Certificates - Self-signed certificate
SSL/TLS Certificates - Let's Encrypt Certificate
SSL/TLS Certificates - OCSP stapling
SSL/TLS Certificates - Connecting to the outside world
SSL/TLS Certificates - Configure haproxy for several subdomains
UsefulNützliche openssl
commands-Befehle
openssl kann zum Beispiel verwendet werden, um sicherzustellen, dass openssl can be used to for example ensure that the end_entity_cetificate.crt and und private_key.key match. It can also be used to ensure that the private key is not corrupted and to check the validity of the certificate itself.
Use the following commands if needed:
Checking the private key
übereinstimmen. Es kann auch verwendet werden, um sicherzustellen, dass der private Schlüssel nicht beschädigt ist, und um die Gültigkeit des Zertifikats selbst zu überprüfen.
Verwenden Sie bei Bedarf die folgenden Befehle:
Prüfen des privaten Schlüssels
Code Block |
---|
Stellen Sie sicher, dass der private Schlüssel nicht beschädigt ist. Wenn die Ausgabe "RSA key ok" erscheint, ist der private Schlüssel korrekt |
Code Block |
Make sure the private key is not corrupted. If the output “RSA key ok“ then the private key is correct.
openssl rsa -check -noout -in private_key.key |
Endteilnehmer und privater Schlüssel stimmen überein
Code Block |
---|
# MakeStellen sureSie thesicher, enddass entitydas certificateEndteilnehmerzertifikat andund the privateder keyprivate matchSchlüssel togetherübereinstimmen. CalculateBerechnen theSie modulusden ofModulus thedes of the private keyprivaten Schlüssels openssl rsa -modulus -noout -in private_key.key | openssl md5 # CalculateBerechnen theSie modulusden ofModulus the server certificatedes Server-Zertifikats openssl x509 -modulus -noout -in end_entity_certificate.crt| openssl md5 # IfWenn bothbeide outputsAusgaben areidentisch identicalsind, thenstimmt theder private keySchlüssel matchesmit todem the end entity certificate. |
Endteilnehmerzertifikat überein. |
Überprüfung der Gültigkeit des Zertifikats
Code Block |
---|
openssl x509 -text -in haproxy.pem |
Konvertierung von .pfx
Certificates to-Zertifikaten in das .pem
format-Format
Code Block |
---|
# TheDer followingfolgende commandBefehl cankann beverwendet usedwerden, toum converteine a .pfx-Zertifikatsdatei certificatein file todas .pem-Format zu Formatkonvertieren (thedas passwordPasswort forfür thedas certificateZertifikat willwird be requiredbenötigt): openssl pkcs12 -in acd.cg.internal.pfx -out /root/haproxy.pem -nodes |