A la suite de notre tuto Comment déployer .net 5 api sur linux Ubuntu 20.04 (Nginx) -Linode (Partie 1).
Nous allons ajouter un nom de domaine pour notre api dotnet et ajouter un certificat SSL pour activer https.
Let’s go…..
Achetons un nom de domaine « testlinode.com » sur Hostinger
J’utilise Hostinger pour acheter les noms de domaine. Je trouve les services de Hostinger rapide, avec un service client très réactif.
Rendez vous sur le site hostinger.
Sur mon Panel je vais sur domaine et je tape « testlinode » sa sera notre nom de domaine pour ce tuto. Nous effectuons le paiement en utilisant notre carte de crédit.
Ensuite renseignons nos informations pour le nom de domaine
Après avoir renseigné nos informations, notre nom de domaine est maintenant disponible.
Notre nom de domaine est aussi disponible en ligne
Revenons sur le dashboard de notre nom de domaine
Ajoutons l’adresse IP de notre machine Ubuntu
Nous pouvons tester maintenant notre serveur nom de domaine sur Hostinger. Il est bien lié à notre machine sur linode.
Testons l'endpoint http://testlinode.com/actualities
Maintenant ajoutons un certificat ssl .
HTTPS est un moyen sécurisé d'envoyer des données entre un serveur Web et un navigateur Web.
Commençons par la configuration pour passer de http à https sur notre serveur linode Ubuntu
D’abord sur notre projet dotnet nous allons effectuer quelques configurations pour passer à HTTPS
Dans notre fichier Program.cs
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>().UseUrls("https://testlinode.com:5000;http://testlinode.com:5002").UseKestrel();
// webBuilder.UseStartup<Startup>().UseUrls("http://localhost:5000");
});
Ensuite dans notre fichier Startup.cs
app.UseHsts();
Et dans notre fichier appsettings.json
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://testlinode.com:5002"
},
"Https": {
"Url": "https://testlinode.com:5000"
}}}
Faisons un rebuild du projet
D:\PROJET\BACK DOTNET\CHRETIEN 2\CHRETIEN2> dotnet build
Maintenant utilisons FileZilla pour le transfert vers notre machine Ubuntu 20.Utilisons une connexion FTP avec le port 22.On supprime d’abord les anciens fichiers
Générons le certificat pour notre nom de domaine
Activons https avec ufw
sudo ufw allow https
Installation de certificat SSL
epa@localhost:~/chretien$ sudo apt install -y certbot
epa@localhost:~/chretien$ sudo certbot certonly --standalone -d testlinode.com -d www.testlinode.com
ou
sudo certbot certonly --standalone -d www.testlinode.com
ou
sudo certbot certonly --standalone -d testlinode.com
Modifions également notre fichier de configuration Nginx
epa@localhost:~/chretien$ sudo vim /etc/nginx/sites-available/default
Remplaçons le contenu par la nouvelle configuration Nginx pour https
server {
listen 80;
server_name testlinode.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name testlinode.com;
ssl_certificate /etc/letsencrypt/live/www.testlinode.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.testlinode.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_buffers 16 8k;
gzip_disable “MSIE [1-6].(?!.*SV1)”;
location / {
proxy_pass https://178.79.168.173:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Redémarrons Nginx
epa@localhost:~$ sudo systemctl restart nginx
Créons un service pour lancer notre projet en arrière-plan
epa@localhost:~$ sudo vim /etc/systemd/system/CHRETIEN2.service
Ajoutons la configuration suivante
[Unit]
Description= Example .NET Web API App running on Ubuntu
[Service]
WorkingDirectory=/home/epa/chretien
ExecStart=/usr/bin/dotnet /home/epa/chretien/CHRETIEN2.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
SyslogIdentifier=CHRETIEN2
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
epa@localhost:~$ sudo systemctl enable CHRETIEN2.service
epa@localhost:~$ sudo systemctl start CHRETIEN2.service
Enfin nous avons terminé, l’activation d’un certificat ssl sur un projet .net en production .
Maintenant le certificat https est activé