Jelajahi Sumber

first commit

Tino 2 bulan lalu
melakukan
4071bf9777
1 mengubah file dengan 124 tambahan dan 0 penghapusan
  1. 124 0
      README.md

+ 124 - 0
README.md

@@ -0,0 +1,124 @@
+# Autoridad Certificadora S/MIME
+
+AC propia para generar certificados S/MIME para firmar y cifrar correos electrónicos.
+
+## Estructura
+
+```
+.
+├── ca.cnf               # Configuración de la AC
+├── smime.cnf            # Configuración para certificados S/MIME
+├── generar-smime.sh     # Script para generar certificados
+├── ca/
+│   ├── private/
+│   │   └── ca.key.pem   # Clave privada de la AC (no compartir)
+│   └── certs/
+│       └── ca.cert.pem  # Certificado raíz (instalar en cada cliente)
+└── usuarios/
+    └── <email>/
+        ├── <email>.key.pem   # Clave privada del usuario
+        ├── <email>.cert.pem  # Certificado S/MIME del usuario
+        └── <email>.p12       # Contenedor PKCS#12 (importar en cliente)
+```
+
+## Generar un certificado S/MIME
+
+```bash
+./generar-smime.sh "Nombre Apellido" email@dominio.com contraseña [días]
+```
+
+- Se genera una clave RSA de 2048 bits.
+- El certificado incluye `emailProtection` en Extended Key Usage y el email en Subject Alternative Name.
+- Validez por defecto: 365 días.
+- El CSR se elimina automáticamente tras firmar.
+
+### Ejemplo
+
+```bash
+./generar-smime.sh "Juan Pérez" juan@example.com MiClaveSegura 730
+```
+
+Produce `usuarios/juan@example.com/juan@example.com.p12`.
+
+---
+
+## Instalación en macOS
+
+### 1. Instalar el certificado raíz de la AC como Autoridad de Confianza
+
+```bash
+sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca/certs/ca.cert.pem
+```
+
+O desde la interfaz gráfica:
+
+1. Abrir **Keychain Access** (Llavero).
+2. Arrastrar `ca/certs/ca.cert.pem` a la lista de **System** (Sistema).
+3. Hacer doble clic en el certificado importado.
+4. Desplegar **Trust** (Confianza) y elegir **Always Trust** (Confiar siempre).
+5. Cerrar e ingresar contraseña de administrador.
+
+### 2. Importar el certificado S/MIME en Mail.app o Keychain
+
+```bash
+open usuarios/<email>/<email>.p12
+```
+
+Esto abre Keychain Access. Ingresar la contraseña del PKCS#12. El certificado quedará disponible en **login** (inicio de sesión) para usar con Mail.app.
+
+### 3. Configurar Mail.app
+
+1. Abrir **Mail > Preferences > Accounts**.
+2. Seleccionar la cuenta de correo.
+3. Ir a **Account > Signing** y elegir el certificado.
+4. En **Encryption** elegir el mismo certificado.
+
+Al redactar un correo aparecerán los iconos de firma y cifrado.
+
+---
+
+## Instalación en iOS (iPhone / iPad)
+
+### 1. Instalar el certificado raíz de la AC
+
+Opción A — Servidor web:
+
+```bash
+cp ca/certs/ca.cert.pem ~/Sites/  # o cualquier carpeta servida por HTTP
+```
+
+Luego abrir `http://<ip>/ca.cert.pem` en Safari en el dispositivo iOS. Safari ofrecerá **Download Profile**. Aceptar.
+
+Opción B — AirDrop:
+
+Enviar `ca/certs/ca.cert.pem` por AirDrop desde un Mac al dispositivo. Al recibirlo aparecerá la opción de instalar el perfil.
+
+**Activar confianza:**
+
+1. Ir a **Settings > General > About > Certificate Trust Settings**.
+2. Activar el interruptor junto al certificado de la AC.
+
+### 2. Instalar el certificado S/MIME personal
+
+Opción A — PKCS#12 por AirDrop:
+
+Enviar `<email>.p12` por AirDrop al dispositivo. Al recibirlo aparecerá **Install Profile** → ingresar la contraseña del PKCS#12 → **Install**.
+
+Opción B — PKCS#12 por correo:
+
+Enviarse el `.p12` como adjunto a sí mismo, abrirlo en el dispositivo e instalar el perfil.
+
+### 3. Configurar Mail.app en iOS
+
+1. Ir a **Settings > Mail > Accounts**.
+2. Seleccionar la cuenta.
+3. Tocar **Account > Advanced**.
+4. En **S/MIME** activar **Sign** y/o **Encrypt** y seleccionar el certificado.
+
+---
+
+## Notas
+
+- El certificado raíz **debe** instalarse como Autoridad de Confianza en cada dispositivo. Sin esto, los certificados firmados se marcarán como no confiables.
+- La clave privada de la AC (`ca/private/ca.key.pem`) es sensible. Considérenla como una contraseña maestra.
+- Para revocar un certificado, abrir `ca/index.txt` y cambiar el primer carácter de la línea correspondiente de `V` a `R`.