Une application complète pour vérifier la validité et les dates d'expiration des certificats SSL de sites web.
- Backend: NestJS (Node.js)
- Frontend: Angular 17
- Styling: CSS personnalisé avec design moderne
- Vérification d'un seul domaine
- Vérification de plusieurs domaines simultanément
- Affichage des informations du certificat:
- Statut de validité
- Dates de validité (début et fin)
- Nombre de jours restants avant expiration
- Émetteur du certificat
- Sujet du certificat
- Alertes visuelles pour les certificats:
- Valides (vert)
- Expirant bientôt - moins de 30 jours (orange)
- Invalides ou expirés (rouge)
ssl-checker/
├── backend/ # API NestJS
│ ├── src/
│ │ ├── ssl/ # Module SSL
│ │ │ ├── dto/ # Data Transfer Objects
│ │ │ ├── interfaces/ # Interfaces TypeScript
│ │ │ ├── ssl.controller.ts
│ │ │ ├── ssl.service.ts
│ │ │ └── ssl.module.ts
│ │ ├── app.module.ts
│ │ └── main.ts
│ ├── package.json
│ ├── tsconfig.json
│ └── nest-cli.json
├── frontend/ # Application Angular
│ ├── src/
│ │ ├── app/
│ │ │ ├── models/ # Modèles de données
│ │ │ ├── services/ # Services HTTP
│ │ │ ├── app.component.ts
│ │ │ ├── app.component.html
│ │ │ └── app.component.css
│ │ ├── styles.css
│ │ ├── index.html
│ │ └── main.ts
│ ├── angular.json
│ ├── package.json
│ └── tsconfig.json
└── package.json # Scripts racine
- Node.js (version 18 ou supérieure)
- npm ou yarn
# Cloner le repository
git clone <votre-repo>
cd ssl-checker
# Installer toutes les dépendances (backend + frontend)
npm run install:all# Backend uniquement
npm run backend:install
# Frontend uniquement
npm run frontend:installLance le backend et le frontend simultanément:
npm run dev- Backend: http://localhost:3000
- Frontend: http://localhost:4200
# Backend seul
npm run backend:dev
# Frontend seul
npm run frontend:devVérifie un seul domaine via query parameter
Réponse:
{
"domain": "exemple.com",
"valid": true,
"validFrom": "2024-01-01T00:00:00.000Z",
"validTo": "2025-01-01T00:00:00.000Z",
"daysRemaining": 45,
"issuer": "Let's Encrypt",
"subject": "exemple.com"
}Vérifie un seul domaine via body
Request:
{
"domain": "exemple.com"
}Vérifie plusieurs domaines
Request:
{
"domains": ["exemple1.com", "exemple2.com", "exemple3.com"]
}Réponse:
[
{
"domain": "exemple1.com",
"valid": true,
"validFrom": "2024-01-01T00:00:00.000Z",
"validTo": "2025-01-01T00:00:00.000Z",
"daysRemaining": 45,
"issuer": "Let's Encrypt",
"subject": "exemple1.com"
},
...
]- Lancez l'application avec
npm run dev - Ouvrez votre navigateur sur http://localhost:4200
- Choisissez entre:
- Un domaine: Vérifiez un seul site
- Plusieurs domaines: Entrez plusieurs domaines (un par ligne)
- Cliquez sur "Vérifier" ou "Vérifier tous"
- Consultez les résultats avec toutes les informations du certificat
# Build complet
npm run build
# Build backend uniquement
npm run backend:build
# Build frontend uniquement
npm run frontend:build- Le backend utilise le module
tlsnatif de Node.js pour récupérer les certificats - Timeout de 10 secondes pour chaque vérification
- CORS configuré pour permettre les requêtes depuis http://localhost:4200
- Interface responsive et moderne
- Gestion d'erreurs complète
- Ajouter une base de données pour l'historique
- Notifications par email pour les certificats expirant bientôt
- Export des résultats en CSV/JSON
- Planification de vérifications automatiques
- Dashboard avec statistiques
- Support HTTPS pour le backend
- Authentification utilisateur
- API rate limiting
MIT