Certificados SSL
Suba un certificado SSL global a su cuenta de Shared Hosting para habilitar HTTPS, con instrucciones de conversión de formato y renovación.
Esta guía explica cómo implementar un certificado SSL en Shared Hosting para que su sitio pueda servirse mediante HTTPS.
Cómo funciona
Shared Hosting utiliza un certificado SSL global: cada cuenta de alojamiento tiene un certificado que, una vez subido, se aplica a todos los dominios vinculados a esa cuenta. Por lo tanto, el certificado debe cubrir todos los dominios que desee servir mediante HTTPS. Puede utilizar cualquiera de estas opciones:
- Un certificado multidominio que incluya todos los dominios en sus nombres alternativos del sujeto (SAN), por ejemplo tanto
example.comcomowww.example.com. - Un certificado comodín como
*.example.com. Un comodín no cubre el dominio raízexample.com, por lo que debe incluirlo por separado en los SAN.
Al momento de redactar esta guía, todos los planes de Shared Hosting admiten certificados SSL.
Preparar los archivos del certificado
Necesita dos fragmentos de texto en formato PEM:
| Elemento | Formato |
|---|---|
| Certificados SSL | Comienza con -----BEGIN CERTIFICATE----- y termina con -----END CERTIFICATE----- |
| Clave privada | Comienza con -----BEGIN PRIVATE KEY----- o -----BEGIN RSA PRIVATE KEY----- y no debe estar protegida con una frase de contraseña |
Las autoridades de certificación suelen proporcionarle el certificado del sitio y uno o más certificados intermedios. Pegue primero el certificado del sitio y luego cada certificado intermedio para formar la cadena completa. De lo contrario, algunos navegadores y clientes podrían indicar que el certificado no es de confianza.
Convertir formatos habituales
El formulario rechaza las claves privadas que comienzan con -----BEGIN EC PRIVATE KEY----- (habitual en certificados ECC) o que tienen una frase de contraseña. Conviértalas primero a PKCS#8 sin cifrar con OpenSSL:
openssl pkcs8 -topk8 -nocrypt -in original.key -out private.keySi tiene un archivo .pfx o .p12, sepárelo de esta manera:
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.pem
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out chain.pem
openssl pkcs12 -in cert.pfx -nocerts -nodes -out original.key
openssl pkcs8 -topk8 -nocrypt -in original.key -out private.key
cat cert.pem chain.pem > fullchain.pemComprobar antes de subir
El servidor comprueba que el certificado y la clave privada coincidan. Puede comprobarlo por su cuenta antes de subirlos:
# Show the domains and expiry date in the certificate
openssl x509 -in fullchain.pem -noout -subject -enddate -ext subjectAltName
# If these two commands print the same hash, the certificate and key match
openssl x509 -in fullchain.pem -noout -pubkey | openssl sha256
openssl pkey -in private.key -pubout | openssl sha256Implementar el certificado
- En la lista Hosting compartido, haga clic en Gestionar en la cuenta de alojamiento.
- Cambie a la pestaña Certificados SSL y haga clic en Subir certificado SSL.
- Pegue la cadena completa en Certificados SSL y la clave privada en Clave privada.
- Haga clic en Subir. Cuando vea "Certificado SSL cargado correctamente", el certificado ya estará implementado.
Si recibe un error, estas son las causas habituales:
| Mensaje | Causa y solución |
|---|---|
| Introduzca un certificado / una clave PEM válidos | Al texto le faltan las líneas BEGIN/END o el tipo de clave no es compatible. Conviértalo como se describe arriba |
| Certificado / clave no válidos | El texto se truncó o tiene caracteres adicionales. Vuelva a copiar el contenido completo |
| El certificado y la clave no coinciden | La clave no corresponde a este certificado |
| El plan no admite SSL | Su plan no incluye SSL |
Verificar HTTPS
Una vez implementado el certificado, abra https://your-domain en un navegador y compruebe que la barra de direcciones muestre una conexión segura. También puede comprobar desde la línea de comandos el certificado que devuelve el servidor:
openssl s_client -connect www.example.com:443 -servername www.example.com </dev/null 2>/dev/null \
| openssl x509 -noout -subject -enddateAl momento de redactar esta guía, la pestaña Certificados SSL puede seguir mostrando "Certificado SSL sin desplegar" después de subirlo correctamente. Guíese por el mensaje de éxito y por una solicitud HTTPS real.
Redirigir a HTTPS
Después de implementar un certificado, su sitio acepta tanto HTTP como HTTPS. Para que los visitantes utilicen siempre HTTPS, agregue una redirección en su aplicación. En un sitio PHP, coloque esto al principio del archivo de entrada:
<?php
$isHttps = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
|| (isset($_SERVER['SERVER_PORT']) && (int)$_SERVER['SERVER_PORT'] === 443);
if (!$isHttps) {
header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], true, 301);
exit;
}Antes de agregar la redirección, compruebe que HTTPS funcione. En WordPress y aplicaciones similares, también debe cambiar la dirección del sitio en el panel de administración por una que comience con https://.
Renovación
Los certificados de Shared Hosting no se renuevan automáticamente. Antes de que venza su certificado, obtenga uno nuevo de su autoridad de certificación y vuelva a subirlo en la pestaña Certificados SSL. El certificado nuevo reemplaza al anterior. Procure reemplazarlo al menos dos semanas antes de su vencimiento.
Implementar mediante la API
Este es el endpoint que utiliza la consola. {name} es el nombre de la cuenta de alojamiento (el mismo que el nombre de usuario de la base de datos). Envíe su token de inicio de sesión con la solicitud:
jq -n --rawfile cert fullchain.pem --rawfile key private.key \
'{certificate: $cert, certificate_key: $key}' \
| curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
https://api.yeap.cloud/api/user/host_shared/vhosts/name/{name}/ssl-full -d @-Crear el cuerpo de la solicitud con jq mantiene intactos los saltos de línea del texto PEM.