2
votes

Impossible de sécuriser le site Web sur Firefox même après l'installation du certificat SSL

J'utilise le code ci-dessous pour installer le certificat SSL sur mon site Web:

const express = require('express');
const path = require('path');
const app = express();
const fs= require('fs');
let privateKey = fs.readFileSync('certificate/x.key', 'utf8');
let ca = fs.readFileSync('certificate/x.crt', 'utf8');
let certificate = fs.readFileSync('certificate/x.crt', 'utf8');
let credentials = { key: privateKey, cert: certificate, ca: ca };
const http = require('http');
const https = require('https');

app.use(express.static(path.join(__dirname, 'build')));

app.get('/*', function(req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

let httpsServer = https.createServer(credentials, app);

httpsServer.listen(443);

Ceci est une application de réaction et je la sers via Node.js.

Lorsque j'ouvre le site Web sur Chrome ou Microsoft Edge, cela indique que la connexion est sécurisée, cryptée et valide, mais lorsque je l'ouvre sur Firefox, cela montre que la connexion n'est pas sécurisée. Valide dans Chrome Ne fonctionne pas sous Firefox

Quel pourrait être le problème?


8 commentaires

Firefox lit-il le bon certificat? Avez-vous également vidé le cache et vérifié?


Comment dois-je vérifier qu'il lit le bon certificat? Cela fonctionne cependant dans Chrome et Edge. Oui, j'ai vidé le cache et le problème est toujours là


Cliquez simplement sur Avancé, accédez au site et vérifiez quel certificat le site a chargé.


Le code d'erreur est: SEC_ERROR_UNKNOWN_ISSUER et quand je clique dessus, il montre un certificat que je n'ai pas passé dans le code.


Hum ... intéressant. Qui est l'émetteur du certificat?


Digicert est l'émetteur


D'accord, qui est votre véritable émetteur de certificat? Comme quel est le nom de l'émetteur en chrome et bord?


L'URL est-elle publique? Vous pouvez essayer Qualys SSL Server Test qui est assez bon pour identifier les problèmes. Si je devais deviner, je suppose que vous lui donniez le certificat de site mais pas la chaîne complète qui comprend l'intermédiaire. Si les magasins de clés des autres navigateurs ont le certificat intermédiaire, ils fonctionneront, mais les navigateurs dépourvus de ce certificat ne le feront pas.


3 Réponses :


0
votes

Si votre certificat semble correct sur d'autres navigateurs et n'apparaît tout simplement pas dans Firefox, la raison en est presque certainement que Firefox affiche toujours un certificat mis en cache.

Effacez simplement l'état SSL de Firefox et vous devriez être prêt à partir:

  • Dans le menu Historique, cliquez sur Effacer l'historique récent. La boîte de dialogue Effacer tout l'historique apparaît.
  • Dans la zone de liste Période pour effacer, sélectionnez Tout.
  • Cochez la case Connexions actives.
  • Cliquez sur Effacer maintenant.

Source: https://www.a2hosting.co.uk/kb/getting-started-guide/internet-and-networking/clearing-a-web-browsers-ssl-state#Mozilla-Firefox < / p>


4 commentaires

Ce n'est pas un problème avec l'histoire. J'ai effacé, supprimé et réinstallé le navigateur mais il ne fonctionne toujours pas


Je pense que les certificats Firefox peuvent parfois être difficiles à éliminer. Essayez de «rafraîchir» votre installation de la manière décrite dans la documentation officielle: support.mozilla.org/en-US/kb/... Aussi, utilisez un vérificateur SSL, tel comme sslshopper.com/ssl-checker.html pour tester votre certificat.


Que dit le vérificateur SSL? Affiche-t-il le bon certificat? Que se passe-t-il si vous essayez Firefox sur un autre ordinateur?


J'ai essayé firefox sur mac et le HTTPS fonctionne bien mais si j'essaye la même chose sur firfox pour Windows, cela montre la même erreur



1
votes

Si votre certificat intermédiaire contient plusieurs blocs, vous devez les diviser en différents fichiers et les envoyer un par un sous forme de tableau dans un paramètre ca comme ceci:

let credentials = { key: privateKey, cert: certificate, ca: [
    fs.readFileSync('certificate/x_1.pem', 'utf8'),
    fs.readFileSync('certificate/x_2.pem', 'utf8'),
    fs.readFileSync('certificate/x_3.pem', 'utf8'),
    [...]
] };


0 commentaires

0
votes

Je vous suggère de saisir l'adresse de votre site ici et de la tester pour les problèmes.

Si vous voyez, par exemple chaîne complète non fournie, vous pouvez créer une chaîne complète de tous vos certificats et l'encoder PEM dans un seul fichier de certificat, puis le fournir sous forme de fichier de certificat. Vous pouvez même y télécharger cette chaîne complète directement après le test.

Fournir une chaîne complète a résolu des problèmes pour moi à plusieurs reprises, où tout fonctionnait bien dans Chrome, mais pas dans d'autres cas.


1 commentaires

Ma note globale est A. Et est approuvée par Mozilla, Apple, Android, Java et Windows