# Configuration HTTPS pour le backend Laravel (Développement local uniquement) > **⚠️ IMPORTANT : Cette configuration est uniquement pour le développement local.** > En production, l'API est hébergée sur un serveur partagé (Bluehost) qui dispose déjà de certificats SSL valides configurés automatiquement. Aucune configuration supplémentaire n'est nécessaire en production. ## Problème Le frontend est maintenant en HTTPS (`https://192.168.11.100:5173`), mais le backend Laravel est toujours en HTTP (`http://192.168.11.100:8000`). Cela cause une erreur de **Mixed Content** : le navigateur bloque les requêtes HTTP depuis une page HTTPS. ## Solutions ### Solution 1 : Utiliser Laragon avec HTTPS (Recommandé) Si vous utilisez Laragon, configurez Apache/Nginx avec HTTPS : 1. **Générer les certificats mkcert** (si pas déjà fait) : ```powershell cd d:\dev\parcapp\api mkcert 192.168.11.100 localhost 127.0.0.1 ::1 ``` 2. **Configurer Apache pour HTTPS** : - Ouvrez Laragon > Menu > Apache > httpd.conf - Décommentez la ligne `LoadModule ssl_module modules/mod_ssl.so` - Ajoutez `Listen 0.0.0.0:443` 3. **Créer un Virtual Host HTTPS** : - Laragon > Menu > Apache > sites-enabled - Créez `parcapp-api-ssl.conf` : ```apache ServerName 192.168.11.100 DocumentRoot "D:/dev/parcapp/api/public" SSLEngine on SSLCertificateFile "D:/dev/parcapp/api/192.168.11.100+3.pem" SSLCertificateKeyFile "D:/dev/parcapp/api/192.168.11.100+3-key.pem" Options Indexes FollowSymLinks AllowOverride All Require all granted ErrorLog "D:/dev/parcapp/api/storage/logs/apache_ssl_error.log" CustomLog "D:/dev/parcapp/api/storage/logs/apache_ssl_access.log" common ``` 4. **Redémarrer Laragon** (Stop All > Start All) 5. **Mettre à jour `frontend/.env.local`** : ```env VITE_API_BASE_URL=https://192.168.11.100:8000 ``` (ou le port 443 si configuré) ### Solution 2 : Utiliser stunnel (Alternative) stunnel crée un tunnel SSL devant `php artisan serve` : 1. **Installer stunnel** : ```powershell choco install stunnel ``` 2. **Créer un fichier de configuration** `api/stunnel.conf` : ``` cert = D:/dev/parcapp/api/192.168.11.100+3.pem key = D:/dev/parcapp/api/192.168.11.100+3-key.pem [laravel] accept = 8000 connect = 127.0.0.1:8001 ``` 3. **Démarrer Laravel sur un port différent** : ```powershell cd api php artisan serve --host=127.0.0.1 --port=8001 ``` 4. **Démarrer stunnel** : ```powershell stunnel stunnel.conf ``` 5. **Mettre à jour `frontend/.env.local`** : ```env VITE_API_BASE_URL=https://192.168.11.100:8000 ``` ### Solution 3 : Utiliser HTTP temporairement (Développement rapide) Si vous voulez tester rapidement sans configurer HTTPS : 1. **Mettre à jour `frontend/.env.local`** : ```env VITE_API_BASE_URL=http://192.168.11.100:8000 ``` 2. **Accéder au frontend en HTTP** : ``` http://192.168.11.100:5173 ``` ⚠️ **Attention** : `crypto.subtle` ne fonctionnera pas en HTTP (sauf sur localhost). L'authentification offline ne fonctionnera pas. ### Solution 4 : Utiliser un reverse proxy (Nginx) Si vous avez Nginx installé, configurez-le comme reverse proxy avec SSL : ```nginx server { listen 8000 ssl; server_name 192.168.11.100; ssl_certificate D:/dev/parcapp/api/192.168.11.100+3.pem; ssl_certificate_key D:/dev/parcapp/api/192.168.11.100+3-key.pem; location / { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` Puis démarrez Laravel sur le port 8001 : ```powershell php artisan serve --host=127.0.0.1 --port=8001 ``` ## Mise à jour CORS Le fichier `api/config/cors.php` a été mis à jour pour accepter les origines HTTPS : - `https://localhost:5173` - Patterns pour `https://192.168.*.*:5173` ## Vérification Après configuration, vérifiez que : 1. Le backend est accessible via `https://192.168.11.100:8000` 2. Le cadenas vert apparaît dans la barre d'adresse 3. Les requêtes API fonctionnent sans erreur CORS 4. `crypto.subtle` est disponible dans le frontend