|
|
@@ -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`.
|