Subido por Orlando Escribano Baigorri

OpenSSL básico

Anuncio
OpenSSL básico
OpenSSL básico
Índice
1 OpenSSL .....................................................................................................................................................1
2 Ejemplos......................................................................................................................................................2
2.1 Ejemplo 1............................................................................................................................................2
2.2 Ejemplo 2............................................................................................................................................3
2.3 Ejemplos de la documentación oficial.............................................................................................3
3 Apéndice.....................................................................................................................................................3
3.1 Estándar X.509....................................................................................................................................3
3.2 Archivo *.pem....................................................................................................................................4
3.3 Base64..................................................................................................................................................4
3.4 RSA......................................................................................................................................................4
4 Fuentes........................................................................................................................................................4
1 OpenSSL
OpenSSL es un kit de herramientas de criptografía que implementa los protocolos de red SSL y
TLS y los estándares de criptografía que requieren.
El programa openssl es una herramienta de línea de comandos para utilizar las múltiples funciones
de criptografía de la librería crypto de OpenSSL.
1/4
OpenSSL básico
2 Ejemplos
2.1
Ejemplo 1
Este comando genera un fichero seguro.pem que contendrá tanto la clave privada como el
certificado público basado en dicha clave.
openssl req -x509 -nodes -newkey rsa:1024
-keyout /etc/ssl/private/seguro.pem
-out /etc/ssl/private/seguro.pem
/etc/ssl
Directorio para certificados y claves.
req -x509 -nodes
Generar un certificado autofirmado
req
request: solicitud de certificado
-x509
generar certificado autofirmado (con
estructura X.509) en lugar de solicitud
-nodes
la clave privada se guardará sin encriptar
(no recomendable, pero necesario en
algunas ocasiones)
-newkey rsa:1024
Crear una nueva solicitud de certificado y una
nueva clave privada.
La clave tendrá 1024 bits y utilizará el algoritmo
de cifrado RSA.
Nota: una clave privada RSA contiene toda la
información necesaria para obtener la clave
pública a partir de ella.
-keyout /etc/ssl/private/seguro.pem Guardar la nueva clave privada en el fichero
seguro.pem
-out /etc/ssl/private/seguro.pem
Guardar la solicitud, o el certificado autofirmado,
en el fichero vs seguro.pem
2/4
OpenSSL básico
Al ejecutar el comando, nos solicitará una serie de datos para generar nuestro certificado:
•
Country Name (2 letter code):
ES
•
State or Province Name:
Navarra
•
Locality Name:
Tudela
•
Organization Name:
Aula 30x
•
Organizational Unit Name:
Seguro
•
Common Name:
aula30x.test
•
Email Address:
manolo@aula30x.test
2.2
Ejemplo 2
Generar una clave privada RSA de 2048 bits y, posteriormente, crear un certificado autofirmado a
partir de dicha clave.
openssl genrsa -out /etc/ssl/private/seguro.key 2048
openssl req -new -key /etc/ssl/private/seguro.key
-x509 -days 365
-out /etc/ssl/certs/seguro.pem
2.3
Ejemplos de la documentación oficial
Crear una clave privada y, después, generar una solicitud de certificado a partir de dicha clave.
openssl genrsa -out key.pem 1024
openssl req -new -key key.pem -out req.pem
Idem, pero usando un sólo comando
openssl req -newkey rsa:1024 -keyout key.pem -out req.pem
Generar un certificado autofirmado
openssl req -x509 -newkey rsa:1024 -keyout key.pem -out req.pem
3 Apéndice
3.1
Estándar X.509
En criptografía, X.509 es un estándar UIT-T para infraestructuras de claves públicas (PKI). X.509
específica, entre otras cosas, formatos estándar para certificados de claves públicas y un algoritmo
de validación de la ruta de certificación. Su sintaxis, se define empleando el lenguaje ASN.1
(Abstract Syntax Notation One), y los formatos de codificación más comunes son DER (Distinguish
Encoding Rules) o PEM (Privacy Enhanced Mail).
3/4
OpenSSL básico
El certificado contiene la clave pública, que expresada en notación ASN.1, consta de dos campos,
en primer lugar, el que muestra el algoritmo utilizado para crear la clave (ej. RSA), y en segundo
lugar, la propia clave pública.
3.2
Archivo *.pem
Las extensiones de archivo de certificados X.509 son:
.CER - Certificado codificado en CER, algunas veces es una secuencia de certificados
.DER - Certificado codificado en DER
.PEM - Certificado codificado en Base64
.P7B - Ver .p7c
.P7C - Estructura PKCS#7 SignedData sin datos, solo certificado(s) o CRL(s)
.PFX - Ver .p12
.P12 - PKCS#12, puede contener certificado(s) (público) y claves privadas (protegido con clave)
3.3
Base64
Sistema de numeración posicional que usa 64 como base. Es la mayor potencia de dos que puede
ser representada usando únicamente los caracteres imprimibles de ASCII. Esto ha propiciado su
uso para codificación de correos electrónicos, PGP y otras aplicaciones.
La primera aplicación conocida de la codificación Base 64 para transmisiones electrónicas de datos
fue el protocolo Privacy-enhanced Electronic Mail (PEM), propuesto por el RFC 989 en 1987. PEM
define un esquema de caracteres imprimibles que usa Base 64 para transformar una secuencia
arbitraria de octetos en un formato que puede ser expresado en líneas cortas de caracteres de 7 bits,
tales como las necesarias en protocolos de transmisión como SMTP.
3.4
RSA
En criptografía, RSA (Rivest, Shamir y Adleman) es un sistema criptográfico de clave pública
desarrollado en 1977. Es el primer y más utilizado algoritmo de este tipo y es válido tanto para
cifrar como para firmar digitalmente.
4 Fuentes
Servicios de Red e Internet, Editorial Garceta
http://www.openssl.org/docs/apps/openssl.html
http://www.openssl.org/docs/apps/req.html
http://es.wikipedia.org/wiki/X.509
http://es.wikipedia.org/wiki/Base64
http://es.wikipedia.org/wiki/RSA
http://www.madboa.com/geek/openssl/
R.18.2
@aula30x
4/4
Descargar