¿Qué tipo de certificado necesito para poder firmar mis propios certificados de subdominio?

10

Estamos creando una aplicación basada en web que se instalará en intranets como una imagen de máquina virtual (le enviamos al usuario un CD con la imagen de la máquina virtual, el usuario lo ejecuta en un VMWare / VirtualBox / ...).

Queremos proteger la aplicación al usar HTTPS. Pensamos en obtener un solo certificado (emitido por alguna CA conocida) para el dominio app.ourdomain.com e instalarlo en todas las instancias, pero eso obviamente significa que uno puede desarmar una instalación, sacar la clave privada y hacer un hombre en el medio ataque en alguna otra instalación (siempre que tuviera acceso a su red). Si bien este es un escenario poco probable, todavía nos gustaría evitar tomar el riesgo.

¿Es posible obtener un certificado comodín que nos permita firmar nuestros propios subdominios, de modo que podamos emitir los certificados app1.ourdomain.com , app2.ourdomain.com , ... y los navegadores los aceptarían? (no tenemos control sobre los navegadores de los usuarios) En caso afirmativo, ¿cómo se llaman estos certificados?

Si no, ¿hay alguna otra forma en que podamos proteger a los usuarios unos de otros?

ACTUALIZACIÓN : desde entonces he encontrado un pregunta similar en serverfault por lo que parece que es técnicamente posible, pero" difícilmente encontrará una CA dispuesta a proporcionarle dicho certificado ". ¿Me encantaría saber si hay una CA que emite dichos certificados?

    
pregunta johndodo 06.08.2012 - 14:58
fuente

2 respuestas

5

Certificados comodín , es decir, los certificados que contienen un nombre con un " * " no son una solución para usted. Un certificado comodín es un certificado que los clientes aceptarán como "coincidentes" con varios nombres de servidores: un certificado que contenga " *.example.com " será válido para " foo.example.com ", " bar.example.com ", etc. Esto es precisamente lo que no desea: no desea que la clave privada y el certificado contenidos en una instancia de su producto sean válidos para otra instancia con un nombre distinto.

Para lograr lo que está intentando hacer, necesita obtener un certificado de CA , marcado como tal con una extensión Basic Constraints con el indicador cA establecido en TRUE . Esto le permitiría emitir certificados usted mismo, y los certificados seguirían enlazándose a la CA raíz de la que obtuvo su propio certificado de CA.

La CA implementada y desplegada puede venderle dicho certificado, pero será costoso:

  • La CA existente tiene un modelo de negocio que se resume como "vender lotes de certificados individuales". Si produce muchos certificados sin la ayuda de la AC, entonces está perdiendo negocios ... y querrá recuperar su dinero.

  • La CA existente tiene un gran activo, que es que su clave pública raíz está incluida en los navegadores web y sistemas operativos de todo el mundo. Los proveedores de sistemas operativos / navegadores aceptan hacerlo solo si la CA ofrece garantías sólidas de que es grave y emitirá certificados solo a las entidades debidamente identificadas. Cuando una CA de este tipo delega este poder de emisión a una sub-CA, tiende a requerir el mismo nivel de seriedad. Por lo tanto, necesitaría hardware bastante fuerte ( HSM en un bunker) y procedimientos complejos.

En una vida pasada, hice un trato semejante con GlobalSign . Hace aproximadamente 10 años, no sé si todavía ofrecen tales ofertas.

Otra estrategia es permitir que sus clientes se ocupen del problema. Documente cómo presionar un certificado y una clave en la aplicación, y listo. Algunos clientes usarán su propia CA (usted no tiene control sobre los navegadores de los usuarios, pero el cliente podría tener dicho control). Algunos comprarán un certificado en otro lugar.

De todos modos, debe permitir tal configuración de certificado manual, aunque solo sea para permitir la renovación cuando caduque el certificado.

    
respondido por el Thomas Pornin 13.01.2013 - 20:47
fuente
3

No creo que haya ninguna forma de hacerlo a menos que desee pagar grandes cantidades a una CA para que emita una que pueda firmar cualquier dominio. Mi consejo es que compre un SSL estándar para cada uno de ellos, cuestan alrededor de $ 10 por pieza. Puede obtener una en Namecheap por aproximadamente $ 8.00 . También globessl por unos centavos más.

    
respondido por el Travis Pessetto 06.08.2012 - 15:21
fuente

Lea otras preguntas en las etiquetas