Este es el comando s_clientssl que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
s_client - programa cliente SSL / TLS
SINOPSIS
openssl s_cliente [-conectar Puerto host] [-nombre del servidor nombre ] [-verificar profundidad]
[-verify_return_error] [-concierto nombre de archivo] [-forma de concierto DER | PEM] [-llave nombre de archivo] [-forma de tecla
DER | PEM] [-pasar arg] [-CAruta directorio] [-CAarchivo nombre de archivo] [-no_alt_chains] [-reconectar]
[-pausa] [-showcerts] [-depurar] [-mensaje] [-nbio_test] [-estado] [-nbio] [-crlf] [-ign_eof]
[-no_ign_eof] [-tranquilo] [-ssl2] [-ssl3] [-tls1] [-no_ssl2] [-no_ssl3] [-no_tls1]
[-no_tls1_1] [-no_tls1_2] [-fallback_scsv] [-insectos] [-cifrar lista de cifrado] [-preferenciaservidor]
[-sobresaltos protocolo] [-motor id] [-tlsextdebug] [-No hay boleto] [-sess_out nombre de archivo]
[-sess_in nombre de archivo] [-y archivo (s)] [-información del servidor tipos] [-estado] [-protoneg siguiente
protocolos]
DESCRIPCIÓN
La s_cliente El comando implementa un cliente SSL / TLS genérico que se conecta a un host remoto
utilizando SSL / TLS. Es un muy útil herramienta de diagnóstico para servidores SSL.
OPCIONES
-conectar Puerto host
Esto especifica el host y el puerto opcional al que conectarse. Si no se especifica, entonces un
Se intenta conectarse al host local en el puerto 4433.
-nombre del servidor nombre
Configure la extensión TLS SNI (Indicación de nombre de servidor) en el mensaje ClientHello.
-concierto nombrecertificado
El certificado que se utilizará, si el servidor lo solicita. El valor predeterminado es no utilizar
certificado.
-forma de concierto formato
El formato de certificado a utilizar: DER o PEM. PEM es el predeterminado.
-llave archivo de clave
La clave privada a utilizar. Si no se especifica, se utilizará el archivo de certificado.
-forma de tecla formato
El formato privado a utilizar: DER o PEM. PEM es el predeterminado.
-pasar arg
la fuente de contraseña de clave privada. Para obtener más información sobre el formato de arg ver la
PASS FRASE ARGUMENTOS sección en openssl(1).
-verificar profundidad
Verificar la profundidad a utilizar. Esto especifica la longitud máxima del certificado del servidor.
encadena y activa la verificación del certificado del servidor. Actualmente la operación de verificación
continúa después de los errores para que se puedan ver todos los problemas con una cadena de certificados. Como un
efecto secundario, la conexión nunca fallará debido a una falla en la verificación del certificado del servidor.
-verify_return_error
Devuelve los errores de verificación en lugar de continuar. Esto típicamente abortará el
apretón de manos con un error fatal.
-CAruta directorio
El directorio que se utilizará para la verificación del certificado del servidor. Este directorio debe estar en
"formato hash", consulte verificar para más información. Estos también se utilizan al construir el
cadena de certificados de cliente.
-CAarchivo presentar
Un archivo que contiene certificados de confianza para usar durante la autenticación del servidor y para usar
al intentar construir la cadena de certificados del cliente.
-objetivo, -ignorar_crítico, -cheques_emisor, -crl_verificar, -crl_check_all, -policy_check,
-crl_extendido, -x509_estricto, -política -check_ss_sig -no_alt_chains
Establezca varias opciones de validación de la cadena de certificados. Ver el verificar página de manual para
Detalles.
-reconectar
se vuelve a conectar al mismo servidor 5 veces usando el mismo ID de sesión, esto se puede usar como un
probar que el almacenamiento en caché de la sesión está funcionando.
-pausa
hace una pausa de 1 segundo entre cada llamada de lectura y escritura.
-showcerts
mostrar toda la cadena de certificados del servidor: normalmente solo el certificado del servidor
sí mismo se muestra.
-prexit
Imprime la información de la sesión cuando el programa sale. Esto siempre intentará imprimir
a cabo la información incluso si falla la conexión. Normalmente la información solo será
se imprime una vez si la conexión se realiza correctamente. Esta opción es útil porque el cifrado
en uso puede ser renegociado o la conexión puede fallar porque un certificado de cliente está
se requiere o se solicita solo después de que se intenta acceder a una determinada URL. Nota:
la salida producida por esta opción no siempre es precisa porque una conexión puede
nunca se han establecido.
-estado
imprime los estados de la sesión SSL.
-depurar
imprima información de depuración extensa, incluido un volcado hexadecimal de todo el tráfico.
-mensaje
muestra todos los mensajes de protocolo con volcado hexadecimal.
-nbio_test
prueba E / S sin bloqueo
-nbio
enciende E / S sin bloqueo
-crlf
esta opción tradujo un salto de línea desde la terminal a CR + LF como lo requieren algunos
servidores.
-ign_eof
inhibir el cierre de la conexión cuando se alcanza el final del archivo en la entrada.
-tranquilo
inhibir la impresión de la información de la sesión y del certificado. Esto implícitamente se enciende
-ign_eof .
-no_ign_eof
cierre la conexión cuando se alcance el final del archivo en la entrada. Puede ser usado para
anular lo implícito -ign_eof después de -tranquilo.
-psk_identidad identidad
Usa la identidad de PSK identidad cuando se utiliza un paquete de cifrado PSK.
-psk clave
Usa la clave PSK clave cuando se utiliza un paquete de cifrado PSK. La clave se da como hexadecimal.
número sin 0x a la izquierda, por ejemplo -psk 1a2b3c4d.
-ssl2, -ssl3, -tls1, -tls1_1, -tls1_2, -no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1,
-no_tls1_2
Estas opciones requieren o deshabilitan el uso de los protocolos SSL o TLS especificados. Por
por defecto, el apretón de manos inicial usa un versión-flexible método que negociará el
la versión más alta del protocolo mutuamente compatible.
-fallback_scsv
Envíe TLS_FALLBACK_SCSV en ClientHello.
-insectos
Hay varios errores conocidos en las implementaciones de SSL y TLS. Agregar esta opción habilita
varias soluciones.
-cifrar lista de cifrado
esto permite modificar la lista de cifrado enviada por el cliente. Aunque el servidor
determina qué conjunto de cifrado se utiliza, debe tomar el primer cifrado admitido en el
lista enviada por el cliente. Ver el sistemas de cifrado comando para obtener más información.
-preferenciaservidor
utilizar las preferencias de cifrado del servidor; solo se utiliza para SSLV2.
-sobresaltos protocolo
envíe los mensajes específicos del protocolo para cambiar a TLS para la comunicación. protocolo is
una palabra clave para el protocolo previsto. Actualmente, las únicas palabras clave admitidas son
"smtp", "pop3", "imap" y "ftp".
-tlsextdebug
imprima un volcado hexadecimal de cualquier extensión TLS recibida del servidor.
-No hay boleto
deshabilite el soporte de tickets de sesión RFC4507bis.
-sess_out nombre de archivo
salida de sesión SSL a nombre de archivo
-sess_in sess.pem
cargar sesión SSL desde nombre de archivo. El cliente intentará reanudar una conexión desde
esta sesión.
-motor id
especificar un motor (por su id cadena) causará s_cliente para intentar
obtener una referencia funcional al motor especificado, inicializándolo si es necesario.
A continuación, el motor se establecerá como predeterminado para todos los algoritmos disponibles.
-y archivo (s)
un archivo o archivos que contienen datos aleatorios utilizados para sembrar el generador de números aleatorios, o un
Toma EGD (ver RAND_egd(3)). Se pueden especificar varios archivos separados por un SO-
Carácter dependiente. El separador es ; para MS-Windows, , para OpenVMS y : para todos
otros.
-información del servidor tipos
una lista de tipos de extensión TLS separados por comas (números entre 0 y 65535). Cada
type se enviará como una extensión ClientHello TLS vacía. La respuesta del servidor (si
any) se codificará y se mostrará como un archivo PEM.
-estado
envía una solicitud de estado de certificado al servidor (grapado OCSP). La respuesta del servidor
(si hay alguno) se imprime.
-protoneg siguiente protocolos
habilite la extensión TLS de negociación de protocolo siguiente y proporcione una lista de
nombres de protocolo para los que el cliente debe anunciar soporte. La lista debe contener
los protocolos más buscados primero. Los nombres de protocolo son cadenas ASCII imprimibles, por ejemplo
"http / 1.1" o "spdy / 3". La lista vacía de protocolos se trata de forma especial y provocará
el cliente para anunciar el soporte para la extensión TLS pero se desconecta justo después
recibiendo ServerHello con una lista de protocolos compatibles con el servidor.
CONECTADO COMANDOS
Si se establece una conexión con un servidor SSL, todos los datos recibidos del servidor
Se muestra y las pulsaciones de tecla se enviarán al servidor. Cuando se usa de forma interactiva
(que no significa ni -tranquilo ni -ign_eof se han dado), la sesión será
renegociado si la línea comienza con un R, y si la línea comienza con un Q o si al final de
se alcanza el archivo, la conexión se cerrará.
NOTAS
s_cliente se puede utilizar para depurar servidores SSL. Para conectarse a un servidor HTTP SSL, el comando:
openssl s_client -connect nombre del servidor: 443
normalmente se utilizaría (https utiliza el puerto 443). Si la conexión tiene éxito, entonces un HTTP
Se puede dar un comando como "GET /" para recuperar una página web.
Si el apretón de manos falla, hay varias causas posibles, si no es nada obvio
como ningún certificado de cliente, entonces el -insectos, -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3,
-no_tls1 Las opciones se pueden probar en caso de que sea un servidor defectuoso. En particular deberías jugar
con estas opciones antes enviar un informe de error a una lista de correo de OpenSSL.
Un problema frecuente al intentar que los certificados de cliente funcionen es que un cliente web
se queja de que no tiene certificados o da una lista vacía para elegir. Esto es normalmente
porque el servidor no envía la autoridad de certificación del cliente en su "CA aceptable
list "cuando solicita un certificado. Al usar s_cliente la lista de CA se puede ver y
comprobado. Sin embargo, algunos servidores solo solicitan la autenticación del cliente después de que se ingresa una URL específica.
solicitado. Para obtener la lista en este caso es necesario utilizar el -prexit opción y
envíe una solicitud HTTP para una página adecuada.
Si se especifica un certificado en la línea de comando usando el -concierto opción no será
se utiliza a menos que el servidor solicite específicamente un certificado de cliente. Por eso simplemente
incluir un certificado de cliente en la línea de comando no es garantía de que el certificado
funciona
Si hay problemas para verificar un certificado de servidor, el -showcerts la opción puede ser
utilizado para mostrar toda la cadena.
Dado que el saludo del cliente SSLv23 no puede incluir métodos de compresión o extensiones, estos
solo se admitirá si su uso está deshabilitado, por ejemplo, utilizando el -no_sslv2 .
La s_cliente La utilidad es una herramienta de prueba y está diseñada para continuar el apretón de manos después de cualquier
errores de verificación de certificados. Como resultado, aceptará cualquier cadena de certificados (de confianza
o no) enviado por el par. Ninguna aplicación de prueba debe no haz esto como los hace
vulnerable a un ataque MITM. Este comportamiento se puede cambiar con el
-verify_return_error Opción: cualquier error de verificación se devuelve abortando el protocolo de enlace.
Use s_clientssl en línea usando los servicios de onworks.net