
Estoy administrando un proxy web corporativo que ejecuta Squid 3.5.10 en CentOS 7 (un dispositivo Diladele), realizando cambios de SSL y tengo problemas para agregar nuevos certificados de CA al almacén de confianza del sistema, lo que hace que nuestros usuarios no poder acceder a varios sitios protegidos por SSL que deberían poder hacerlo. Uno de esos sitios eshttps://www.sexierdating.com/(Sí, es lo que parece, pero nuestra política es que no nos importe lo que la gente navegue durante la hora del almuerzo, siempre y cuando sea legal).
El mensaje de error de Squid es el habitual X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
, lo que significa que por alguna razón Squid no confía o no puede verificar el certificado del servidor de destino. Hasta ahora, obtener el certificado raíz de la CA en formato PEM de las páginas de soporte de la CA, colocarlo en /etc/pki/ca-trust/source/anchors
, ejecutar update-ca-trust
y reiniciar Squid era suficiente para solucionar el problema, pero no en mi caso actual. El paquete ca-certificates tiene la versión actual, ya que acabo de ejecutar una actualización completa de yum en la máquina.
Todos los dominios con los que tengo problemas actualmente tienen un certificado "Go Daddy Secure Certificate Authority - G2". Descargué todos los certificados de su página de soporte (https://certs.godaddy.com/repository/), los instaló como se describe arriba, recargó Squid, pero el error persiste. Incluso miré update-ca-trust con strace para ver si realmente está seleccionando los archivos PEM correctos, y lo hace.
Lo que me extraña un poco es que la página de descarga certs.godaddy.com parece estar usando exactamente el mismo certificado raíz e intermedio que algunos de los dominios problemáticos, pero esa página funciona bien a través de Squid. Cuando comparo los certificados en Firefox, no veo ninguna diferencia en las especificaciones generales y los algoritmos, pero aún así, uno funciona y otros no.
Estoy al límite y espero que alguien pueda orientarme en la dirección correcta para resolver esto. No puedo agregar excepciones de proxy para cada segunda página con un certificado de GoDaddy.
Respuesta1
Los almacenes de CA en máquinas y navegadores incluyen los certificados de CA raíz.
Los sitios web NUNCA deben recibir certificados de las CA raíz, sino de un intermediario.
Es responsabilidad del sitio web devolver tanto su propio certificado como el certificado intermediario, de modo que los navegadores puedan encadenar el intermediario a uno de los certificados raíz en los que confía.
En el ejemplo del sitio web que proporcionó, no incluyen el certificado intermediario, por lo que sus usuarios no pueden confiar en el sitio. Esto se puede ver con un escaneo de ssllabs aquí:https://www.ssllabs.com/ssltest/analyze.html?d=www.sexierdating.com. Como puede ver, solo envía un certificado en lugar de dos y recibe una advertencia incompleta debido a esto. Al expandir la sección Rutas de certificados se muestra la cadena completa y le permite descargar este intermediario si desea instalarlo.
Cabe señalar que a menudo los navegadores manejan esta situación, ya sea porque tendrán intermediarios comunes almacenados en caché al visitar otros sitios o porque intentarán encontrar el certificado intermedio que falta. Muy a menudo, la mayoría de los usuarios y operadores de sitios no detectan estas configuraciones erróneas. Supongo que el problema de SSL aquí no es tan fácil de usar para manejar estos errores.
Esto contrasta con certs.godaddycom (https://www.ssllabs.com/ssltest/analyze.html?d=certs.godaddy.com) que envía la cadena completa. De hecho, tiene el problema inverso y está enviando demasiados certificados ya que no es necesario enviar el certificado raíz (pero tal vez sea por razones históricas, como puede ver, hay dos rutas de cadena de certificados, una de las cuales requiere que el certificado raíz estar firmado por otro certificado, que probablemente sea utilizado por navegadores más antiguos que no tienen el nuevo certificado raíz en sus almacenes de confianza).
De todos modos tus opciones son:
- Dígales a sus usuarios que es el sitio web el que no está configurado correctamente y que vuelvan al trabajo y dejen de perder el tiempo de la empresa buscando sitios poco fiables.
- Agregue el certificado intermedio a su tienda raíz de Squid CA. Por supuesto, esta no es una CA raíz y en realidad no debería estar en la tienda y, si alguna vez se revoca por cualquier motivo, seguirás confiando en ella (que es una de las razones por las que los certificados no se emiten desde certificados raíz, ya que es muy difícil eliminarlos). comprarlos en tiendas del fideicomiso). Entonces, al incluir esto, estás introduciendo un riesgo de seguridad.
- Póngase en contacto con el sitio web, explíqueles el problema y pídales que lo solucionen. ¡Y luego prepárate para básicamente solucionar problemas de todos los demás sitios rotos que buscan tus usuarios!
Sin duda me quedaría con la opción 1 si fuera yo :-)