Die Geschichte des Wechsels des Azure App Service-Websystems von Windows zu Linux

Überblick

Ich habe meine eigene Website mit App Service of Azure betrieben, aber um eine benutzerdefinierte Domain- und SSL-Bindung durchzuführen, muss ich einen Plan von ** ungefähr 7.000 Yen pro Monat ** auswählen, damit ich keine Gewinne erwarten kann Ich dachte, das System sei etwas teuer, aber ich habe gelernt, dass Linux etwas billiger sein würde, und habe mich daher für einen Wechsel entschieden.

Unten die Struktur der selbst erstellten Website

Vorderes Ende Vue.js
Backend .Net Core 3.1(C#)
Datenbank SQLServer
CI/CD AzureDevopsPipelines
SSL-Zertifikat Let’s Encrypt
Andere Dienste verwendet BlobStorage、SendGrid

Unterschied zwischen "Windows" und "Linux" von App Service

Ich weiß nicht, ob dies vorerst möglich ist, aber ich habe beschlossen, es einmal zu machen, also habe ich AppService (Linux) erstellt. Wenn ich mir den Inhalt anschaue, können die folgenden Funktionen unter Linux nicht verwendet werden.

Die Erweiterung kann nicht verwendet werden. .. .. Bedeutet das, dass die Einführung von "Let's Encrypt" manuell erfolgen muss? .. .. Vorahnung von Turbulenzen. .. .. (Wenn es sich um die Windows-Version handelt, kann sie problemlos mit der Erweiterung "Azure Let's Encrypt" angewendet werden.)

Ich werde es trotzdem versuchen

Da ich den Dienst vorerst erstellt habe, konnte ich die Quelle bereitstellen, die Konfigurationsinformationen festlegen und problemlos starten. Die benutzerdefinierte Domäneneinstellungsmethode ist dieselbe wie in Windows, sodass Sie sie problemlos ausführen können.

Die letzte Schwierigkeit besteht darin, manuell ein SSL-Zertifikat von "Let's Encrypt" zu erhalten.

Installieren Sie Certbot

SSH-Verbindung zum entsprechenden App-Dienst (über das Azure-Portal möglich) und führen Sie den folgenden Befehl aus

$ apt-get update
$ apt-get install certbot

Sie sollten jetzt Certbot installiert haben.

Ausstellung des Zertifikats

Verwenden Sie Certbot, um ein Zertifikat auszustellen. Führen Sie den folgenden Befehl mit SSH wie zuvor aus

certbot certonly -d <Domain> --manual --preferred-challenges dns

Der Teil "--preferred-Challenges DNS" ist die Auswahl der Authentifizierungsmethode.

Dieses Mal habe ich mich für die Authentifizierung entschieden, indem ich der Domain, für die ich ein Zertifikat mit dem Namen ** DNS Challenge ** erhalten möchte, einen TXT-Eintrag hinzugefügt habe. (Es gibt andere ** Https Challenge **, bei denen eine Datei an einem bestimmten Speicherort abgelegt und referenziert wird.)

Wenn Sie mit dem Befehl fortfahren, wird unterwegs eine Anweisung wie "Erstellen eines TXT-Eintrags mit diesem Wert in DNS" angezeigt. Befolgen Sie daher die Anweisungen. Selbst wenn Sie einen TXT-Datensatz erstellen, wird dieser etwa 5 Minuten lang nicht wiedergegeben. Überprüfen Sie daher, ob er mit dem folgenden Befehl wiedergegeben wird, bevor Sie fortfahren.

nslookup -q=TXT [Domain]

Wenn die folgende Zeichenfolge angezeigt wird, ist sie erfolgreich.

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/[Domain]/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/[Domain]/privkey.pem
   Your cert will expire on <some-date>. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Erstellen eines privaten Zertifikats

Erstellen Sie ein privates Zertifikat mit dem Zwischenzertifikat usw. von Let's Encrypt.

$ mkdir /tmp/sandbox -p
$ cd /tmp/sandbox

$ SOURCE=/etc/letsencrypt/live/[Domain]
$ sudo cp $SOURCE/{cert.pem,privkey.pem,chain.pem} .

$ sudo chown ope *.pem

$ openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem

Wenn Sie den letzten Befehl ** openssl ** ausführen, werden Sie aufgefordert, ein Kennwort festzulegen. Geben Sie es daher ein. Denken Sie an das Passwort, das Sie hier eingeben, da es erforderlich ist, wenn Sie Ihr Zertifikat bei AppService registrieren.

Einstellungen für App Service

Laden Sie die erstellte pfx-Datei und die SSL-Bindung von der benutzerdefinierten AppService-Domäne in die Zieldomäne herunter. Damit ist die Arbeit abgeschlossen!

Am Ende

Wenn Sie in einem Unternehmen usw. arbeiten, ist es praktisch, ** Application Insight ** oder Analysetools zu verwenden, aber ich persönlich dachte, dass Linux in Ordnung wäre, wenn es eine kleine Site wäre, die von einer Person betrieben wird. Wie wäre es mit .Net Core auf einem Linux-Server? .. .. Ich habe nachgedacht, aber ich bin froh, dass es normal funktioniert hat. (Ich fühlte mich jedoch etwas leichter als Windows. Liegt es an meinem Verstand?)

Es war ** ungefähr 7.000 Yen pro Monat ** für einen Windows-Server, aber ** ungefähr 2000 Yen pro Monat ** für einen Linux-Server ** !! Wenn dies der Fall ist, ist es meiner Meinung nach in Ordnung, weitere Server zu starten und einen WEB-Dienst zu erstellen.

Recommended Posts

Die Geschichte des Wechsels des Azure App Service-Websystems von Windows zu Linux
Immerhin die Geschichte der Rückkehr von Linux zu Windows
Bereitstellung von GitHub-Aktionen für Azure App Service
Die Geschichte vom Umzug von Pipenv zur Poesie
Die Geschichte des Wechsels von WoSign zu Let's Encrypt für ein kostenloses SSL-Zertifikat
Beispiel zum Einfügen der Python Flask-Webanwendung in den Azure App Service (Webanwendung)
Die Geschichte des Kopierens von Daten von S3 auf Googles TeamDrive
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Eine Geschichte über die Umstellung eines persönlich entwickelten Webdienstes von einem Mietserver auf GCP (Google Cloud Platform)
So bedienen Sie Linux von der Konsole aus
Die Geschichte des Ausführens der asp.net Core 3.1-App auf der arm64-Version von Amazon Linux 2
Die Geschichte von pep8 wechselt zu pycodestyle
[Amazon Linux] Wechsel von der Python 2-Serie zur Python 3-Serie
SSH-Anmeldung am Zielserver von Windows mit einem Klick auf eine Verknüpfung
Fügen Sie Windows zum Startmenü des Linux-Betriebssystems hinzu
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Versuchen Sie, die Bewegung des Sonnensystems zu simulieren
[Hinweis] Die Geschichte des Einrichtens des SDK für Python von Azure IoT Hub unter Linux
Die Geschichte der Portierung von Code von C nach Go (und zur Sprachspezifikation)
Die Geschichte des Starts eines Minecraft-Servers von Discord
Wie man die Portnummer des xinetd-Dienstes kennt
Die Geschichte des Stoppens des Produktionsdienstes mit dem Befehl hostname
Die Geschichte des Aufbaus der schnellsten Linux-Umgebung der Welt
Öffnen Sie die Chrome-Version von LINE über die Befehlszeile [Linux].
Die Geschichte, ein Ring-Fit-Abenteuer kaufen zu wollen
Die Geschichte der Verwendung von Circleci zum Bau vieler Linux-Räder
Ich habe versucht, den WEB-Server der normalen Linux-Programmierung 1st Edition mit C ++ 14 neu zu schreiben
Eine Geschichte über die Portierung des Codes "Versuchen Sie zu verstehen, wie Linux funktioniert" nach Rust
Die Geschichte von sys.path.append ()
[Linux] Kopieren Sie Daten mit einem Shell-Skript von Linux nach Windows
Die Geschichte der Einführung von Jedi (automatisches Vervollständigungspaket von Python) in Emacs
Die Geschichte des Django-Modellfeldes verschwindet aus der Klasse
Berechnen des aus ABC134-D gelernten Rechenaufwands
Wie man NAPALM aus dem Web erreicht (NetDevOpsSec echte Lösung)
Eine grobe Zusammenfassung der Unterschiede zwischen Windows und Linux
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
SSH in Azure App Service und Aktivieren von venv
Befehle und Dateien zum Überprüfen der Version von CentOS Linux
Die Geschichte, dass CSS nicht mehr angewendet wird, wenn die Django-App von lokal auf AWS hochgeladen wird