17 votos

Selección de certificados SSL basada en el encabezado del host: ¿es posible?

¿Es posible que un servidor web seleccione un certificado SSL para utilizarlo basándose en el encabezado del host de la conexión entrante, o esa información sólo está disponible después de establecer la conexión SSL?

Es decir, ¿puede mi servidor web listarse en el puerto 443 y utilizar el certificado de foo.com si https://foo.com y el certificado de bar.com si https://bar.com se solicita o estoy tratando de hacer algo imposible porque el servidor tiene que establecer una conexión SSL antes de saber lo que el cliente quiere?

23voto

Warner Puntos 17528

Históricamente, su primera afirmación es correcta. Ahora, hay múltiples opciones:

  • Un certificado comodín si hay subdominios dentro del mismo dominio.
  • Un certificado SAN/UCC para especificar nombres alternativos para el certificado, pudiendo así servir múltiples certificados.
  • SNI se introdujo para establecer la conexión SSL después de la cabecera Host. Sin embargo, esto tiene un soporte limitado, ya que es más nuevo.

Esto ha sido respondido numerosas veces en ServerFault por mí y otros. Le sugiero que busque más detalles a menos que tenga una pregunta específica.

6voto

AlberT Puntos 6591

La respuesta de leoperbo me funcionó con Ubuntu 12.04 pero tuve que tuve que cambiar el 266 número en el comando sugerido por leoperbo. No deberías usar este comando sin encontrar cuidadosamente el número de 3 dígitos

xinput set-int-prop NN 266 8 2 3 0 0 1 2 3

Sin embargo, el otro comando debería funcionar sin problemas (tenía números para la configuración que no tenían sentido, por lo que los cambié)

xinput set-prop "ETPS/2 Elantech Touchpad" "Synaptics Tap Action" 2, 3, 0, 0, 1, 2, 3

Por si acaso escribí la siguiente guía para encontrar su NN y 266 para su touchpad. Al final también explico los valores que se establecen para que puedas elegir tu configuración óptima. También deberías leer la respuesta de leoperbo para configurarlo permanentemente

En primer lugar, utilice el siguiente comando en el terminal

xinput list

Obtendrá algo así

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ 1.3M WebCam                               id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Acer WMI hotkeys                          id=12   [slave  keyboard (3)]

Lo que necesitamos es el id del touchpad (en mi caso 13)

2. Utiliza el siguiente comando en el terminal sustituyendo el XX por el número de identificación que has encontrado anteriormente

xinput list-props XX

Obtendrá algo así

Device 'ETPS/2 Elantech Touchpad':
Device Enabled (144):   1
Coordinate Transformation Matrix (146): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (269): 1
Device Accel Constant Deceleration (270):   2.500000
Device Accel Adaptive Deceleration (271):   1.000000
Device Accel Velocity Scaling (272):    12.500000
Synaptics Edges (273):  56, 1352, 34, 606
Synaptics Finger (274): 1, 1, 256
Synaptics Tap Time (275):   180
Synaptics Tap Move (276):   68
Synaptics Tap Durations (277):  180, 180, 100
Synaptics ClickPad (278):   0
Synaptics Tap FastTap (279):    1
Synaptics Middle Button Timeout (280):  75
Synaptics Two-Finger Pressure (281):    282
Synaptics Two-Finger Width (282):   7
Synaptics Scrolling Distance (283): 30, 30
Synaptics Edge Scrolling (284): 0, 0, 0
Synaptics Two-Finger Scrolling (285):   1, 0
Synaptics Move Speed (286): 1.000000, 1.750000, 0.129366, 40.000000
Synaptics Edge Motion Pressure (287):   30, 160
Synaptics Edge Motion Speed (288):  1, 123
Synaptics Edge Motion Always (289): 0
Synaptics Off (290):    2
Synaptics Locked Drags (291):   0
Synaptics Locked Drags Timeout (292):   5000
Synaptics Tap Action (293): 2, 3, 0, 0, 1, 3, 0
Synaptics Click Action (294):   1, 1, 0
Synaptics Circular Scrolling (295): 0
Synaptics Circular Scrolling Distance (296):    0.100000
Synaptics Circular Scrolling Trigger (297): 0
Synaptics Circular Pad (298):   0
Synaptics Palm Detection (299): 0
Synaptics Palm Dimensions (300):    10, 200
Synaptics Coasting Speed (301): 20.000000, 50.000000
Synaptics Pressure Motion (302):        ... of unknown type CARDINAL

Synaptics Pressure Motion Factor (303): 1.000000, 1.000000
Synaptics Resolution Detect (304):  1
Synaptics Grab Event Device (305):  1
Synaptics Gestures (306):   1
Synaptics Capabilities (307):   1, 0, 1, 1, 1, 1, 1
Synaptics Pad Resolution (308): 1, 1
Synaptics Area (309):   0, 0, 0, 0
Synaptics Noise Cancellation (310): 7, 7
Device Product ID (263):    2, 14
Device Node (264):  "/dev/input/event11"

Lo que tenemos que encontrar arriba es esta línea

    Synaptics Tap Action (293): 2, 3, 0, 0, 1, 3, 0

y anotar el número dentro del ( ), que en mi caso es 293

Tercer y último comando en el terminal ( Reemplace XX con el id y YYY con el número dentro del ( ) que para mi laptop fueron XX=13 y YYY=293 )

xinput set-int-prop XX YYY 8 2 3 0 0 1 2 3

Los valores 2 3 0 0 1 2 3 son los siguientes ajustes en el orden correcto 0=desactivado 1=clic izquierdo 2=centro 3=derecho

Option "RTCornerButton"
Which mouse button is reported on a right top corner tap.

Option "RBCornerButton"
Which mouse button is reported on a right bottom corner tap.

Option "LTCornerButton"
Which mouse button is reported on a left top corner tap.

Option "LBCornerButton"
Which mouse button is reported on a left bottom corner tap.

Option "TapButton1"
Which mouse button is reported on a non-corner one-finger tap.

Option "TapButton2"
Which mouse button is reported on a non-corner two-finger tap.

Option "TapButton3"
Which mouse button is reported on a non-corner three-finger tap.

5voto

Christian Deger Puntos 503

Para ampliar la respuesta de Warner: Página de CAcert Grupo de trabajo Vhost compara varios métodos para utilizar varios dominios en un mismo servidor. Personalmente utilizo Indicación del nombre del servidor .

1voto

Jim Puntos 36

¿o es una información que sólo está disponible una vez establecida la conexión SSL?

Es correcto. La conexión SSL se establece antes de que se envíe cualquier parte de la petición HTTP (cabecera de host incluida).

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: