Cómo hacer que un sitio web sea seguro con https

87

Tengo que crear una pequeña aplicación web para que una empresa mantenga sus datos comerciales ... Solo aquellos dentro de la empresa la usarán, pero estamos planeando alojarla en el dominio público, para que los empleados puedan conectarse a la aplicación desde varias ubicaciones. . (Hasta ahora he creado aplicaciones web que se alojan solo internamente)

Me pregunto si necesito usar una conexión segura (https) o solo la autenticación de formularios es suficiente.

Si dices https, tengo algunas preguntas:

  1. ¿Qué debo hacer para preparar mi sitio web para https. (¿Necesito modificar el código / configuración)
  2. Es SSL y https uno y lo mismo ...
  3. ¿Necesito presentar una solicitud con alguien para obtener una licencia o algo?
  4. ¿Necesito asegurar todas mis páginas o solo la página de inicio de sesión ...

Estaba buscando una respuesta en Internet, pero no pude obtener todos estos puntos ... Cualquier documento técnico u otras referencias también serían útiles ...

No dude en preguntar en caso de que necesite más información.

Gracias

  • Raja
El rey
fuente
Hola a todos ... Gracias a todos ... Todas sus respuestas fueron de gran ayuda ... Sería injusto seleccionar una respuesta aquí ... (ASÍ que debe haber una disposición para tales situaciones). Por lo tanto, he seleccionado una respuesta y upvoted los otros ... La respuesta seleccionada es tan importante como otras respuestas ...
El Rey
3
Trabajo adicional de precaución, dependiendo de cuán confidencial sea la información (por ejemplo, la información personal puede estar sujeta a la ley estatal o federal) y qué relación y contrato tiene con la empresa, puede pensar si sería responsable alguien piratea el sitio.
huynhjl
Una vez que tenga el certificado instalado en su servidor, para agregar https a su sitio web en IIS, todo lo que tiene que hacer es ir al sitio y "Editar enlaces", elegir https y elegir el certificado.
bgmCoder

Respuestas:

49

¿Qué debo hacer para preparar mi sitio web para https. (¿Necesito modificar el código / configuración)

Debe tener en cuenta las mejores prácticas para la codificación segura (aquí hay una buena introducción: http://www.owasp.org/index.php/Secure_Coding_Principles ), de lo contrario, todo lo que necesita es un certificado SSL configurado correctamente.

¿SSL y https son lo mismo?

Prácticamente sí.

¿Necesito presentar una solicitud con alguien para obtener una licencia o algo?

Puede comprar un certificado SSL de una autoridad certificadora o utilizar un certificado autofirmado. Los que puede comprar varían enormemente en precio, desde $ 10 hasta cientos de dólares al año. Necesitaría uno de esos si crea una tienda en línea, por ejemplo. Los certificados autofirmados son una opción viable para una aplicación interna. También puede utilizar uno de esos para el desarrollo. Aquí hay un buen tutorial sobre cómo configurar un certificado autofirmado para IIS: Habilitación de SSL en IIS 7.0 mediante certificados autofirmados

¿Necesito proteger todas mis páginas o solo la página de inicio de sesión?

Use HTTPS para todo, no solo para el inicio de sesión inicial del usuario. No será una sobrecarga y significará que los datos que los usuarios envían / ​​reciben de su aplicación alojada remotamente no pueden ser leídos por terceros si son interceptados. Incluso Gmail ahora activa HTTPS de forma predeterminada.

Rowlf
fuente
1
También puede obtener certificados TLS gratuitos, es decir, de Let's encrypt
1615903
8

¿Qué tipo de datos comerciales ? ¿Secretos comerciales o simplemente cosas que no quieren que la gente vea, pero si saliera, no sería gran cosa? Si hablamos de secretos comerciales, información financiera, información del cliente y cosas que generalmente son confidenciales. Entonces ni siquiera sigas ese camino.

Me pregunto si necesito usar una conexión segura (https) o solo la autenticación de formularios es suficiente.

Utilice una conexión segura en todo momento.

¿Necesito modificar el código / configuración?

Si. Bien puede que no lo sea. Es posible que desee que un experto lo haga por usted.

Es SSL y https uno y lo mismo ...

Mayormente sí. La gente suele referirse a esas cosas como lo mismo.

¿Necesito presentar una solicitud con alguien para obtener una licencia o algo?

Probablemente desee que su certificado esté firmado por una autoridad certificadora. Le costará a usted oa su cliente un poco de dinero.

¿Necesito asegurar todas mis páginas o solo la página de inicio de sesión ...

Utilice https en todas partes. El rendimiento no suele ser un problema si el sitio está destinado a usuarios internos.

Estaba buscando una respuesta en Internet, pero no pude obtener todos estos puntos ... Cualquier documento técnico u otras referencias también serían útiles ...

Comience aquí para obtener algunos consejos: http://www.owasp.org/index.php/Category:OWASP_Guide_Project

Tenga en cuenta que SSL es una pieza minúscula para hacer que su sitio web sea seguro una vez que sea accesible desde Internet. No evita la mayoría de los tipos de piratería.

huynhjl
fuente
+1 por el buen consejo sobre cómo asegurar todo el camino y prevenir un desastre al preguntar si la información es muy confidencial y recomendar no ponerla en línea
BlueTrin
7

Creo que se está confundiendo con la autenticación de su sitio y SSL.

Si necesita convertir su sitio en SSL, deberá instalar un certificado SSL en su servidor web. Puede comprar un certificado para usted en uno de los lugares como Symantec, etc. El certificado contendría su par de claves pública / privada, junto con otras cosas.

No necesitará hacer nada en su código fuente y aún puede continuar usando su autenticación de formulario (o cualquier otro) en su sitio. Es solo eso, cualquier comunicación de datos que tenga lugar entre el servidor web y el cliente será encriptada y firmada usando su certificado. La gente usaría HTTP seguro (https: //) para acceder a su sitio.

Vea esto para obtener más información -> http://en.wikipedia.org/wiki/Transport_Layer_Security

Bhaskar
fuente
3

Para los datos comerciales, si los datos son privados, usaría una conexión segura; de lo contrario, una autenticación de formularios es suficiente.

Si decide utilizar una conexión segura, tenga en cuenta que no tengo experiencia en la protección de sitios web, simplemente me estoy retractando de lo que encontré durante mi propia experiencia personal. Si me equivoco de alguna manera, no dude en corregirme.

¿Qué debo hacer para preparar mi sitio web para https. (¿Necesito modificar el código / configuración)

Para habilitar SSL (Secure Sockets Layer) para su sitio web, debe configurar un certificado, el código o la configuración no se modifican.

He habilitado SSL para un servidor web interno, usando OpenSSL y ActivePerl de este tutorial en línea . Si esto se usa para una audiencia más grande (mi audiencia era menos de 10 personas) y es de dominio público, sugiero buscar alternativas profesionales.

Es SSL y https uno y lo mismo ...

No exactamente, ¡pero van de la mano! SSL garantiza que los datos se cifren y descifren de un lado a otro mientras visualiza el sitio web, httpses el URI que se necesita para acceder al sitio web seguro. Notarás que cuando intentas acceder a http://secure.mydomain.comél se muestra un mensaje de error.

¿Necesito presentar una solicitud con alguien para obtener una licencia o algo?

No necesitaría obtener una licencia, sino un certificado. Puede buscar empresas que ofrezcan servicios profesionales con sitios web seguros, como VeriSign como ejemplo.

¿Necesito asegurar todas mis páginas o solo la página de inicio de sesión ...

Una vez que su certificado esté habilitado para mydomain.comcada página que caiga *.mydomain.com, estará protegida.

Anthony Forloney
fuente
1

¿Necesito asegurar todas mis páginas o solo la página de inicio de sesión?

Simplemente mantenga la página de inicio de sesión en https

esto asegurará que no haya gastos generales al navegar por otras páginas. la condición es que debe proporcionar la configuración de autenticación correcta en la configuración web. Esto es para garantizar que los usuarios que no hayan iniciado sesión no puedan navegar por las páginas que necesitarían autenticación.

Balalakshmi
fuente
3
Servir solo una parte de su sitio bajo TLS no es seguro. Un atacante activo puede usar SSLStrip y tener acceso a páginas supuestamente protegidas.
Tobu
1

@balalakshmi mencionó la configuración de autenticación correcta. La autenticación es solo la mitad del problema, la otra mitad es la autorización.

Si está utilizando la autenticación de formularios y controles estándar, <asp:Login>hay un par de cosas que deberá hacer para asegurarse de que solo sus usuarios autenticados puedan acceder a páginas seguras.

En web.config, en la <system.web>sección, deberá deshabilitar el acceso anónimo de forma predeterminada:

<authorization>
 <deny users="?" />
</authorization>

Cualquier página a la que se acceda de forma anónima (como la propia página Login.aspx) deberá tener una anulación que vuelva a permitir el acceso anónimo. Esto requiere un <location>elemento y debe estar ubicado en el <configuration>nivel ( fuera de la <system.web>sección), así:

<!-- Anonymous files -->
<location path="Login.aspx">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

Tenga en cuenta que también deberá permitir el acceso anónimo a cualquier hoja de estilo o script que utilicen las páginas anónimas:

<!-- Anonymous folders -->
<location path="styles">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

Tenga en cuenta que el pathatributo de la ubicación es relativo a la web.configcarpeta y no puede tener un ~/prefijo, a diferencia de la mayoría de los demás atributos de configuración de tipo de ruta.

devstuff
fuente
-2

Intente hacer un directorio de arranque en PHP, como en

<?PHP
$ip = $_SERVER['REMOTE_ADDR'];
$privacy = ['BOOTSTRAP_CONFIG'];
$shell   = ['BOOTSTRAP_OUTPUT'];
enter code here
if $ip == $privacy {
function $privacy int $ip = "https://";
} endif {
echo $shell
}
?>

¡Eso es principalmente!

Ce0ns
fuente
3
Eso en realidad no responde a la pregunta
Andreas