
Un certificado SSL autofirmado le permite ejecutar Apache a través de HTTPS en Rocky Linux 10 sin comprar un certificado de una autoridad certificadora. Esta es la opción correcta para servidores provisionales, aplicaciones internas y configuraciones de laboratorios locales que no requieren un certificado de confianza pública.
Los certificados SSL autofirmados son una manera fácil de habilitar HTTPS existir apache No es necesario comprar un certificado. autoridad certificadora (California).
Muchos tutoriales antiguos todavía utilizan el básico openssl req -x509 Comando para crear un certificado. Si bien esto funciona, a menudo configura un certificado sin certificado. Alias de tema (red de almacenamiento) navegadores web modernos como aleación de cromo y Firefox El soporte SAN ha sido necesario durante muchos años. Sin él, los visitantes verán errores como ERR_CERT_COMMON_NAME_INVALIDincluso si el certificado nombre común parece correcto.
En esta guía utilizarás san.cnf El perfil incluye red de almacenamiento entrada. Luego configurará un completo Servidor virtual Apache SSL para store.linuxapp.com Y aplique algunas configuraciones de seguridad TLS recomendadas. El mismo proceso también se aplica a sombrero rojo 10 y AlmaLinux 10.
Requisitos previos
Antes de comenzar, asegúrese de tener:
- Rocky Linux 10 se instala utilizando un usuario sudo no root.
- El nombre de dominio que apunta a la dirección IP de su servidor (Pautas para usar
store.tecmint.comPor ejemplo). - Se puede acceder a los puertos 80 y 443, o se pueden modificar las reglas del firewall.
Paso 1: instale Apache y mod_ssl
LokiLinux 10 Ya incluido AbiertoSSL en el sistema operativo base, por lo que no es necesario instalarlo por separado. lo que necesitas es apache (httpd) y mod_ssl paquete, que añade SSL/TLS Soporta servidores web.
sudo dnf install httpd mod_ssl -y
cuando mod_ssl Después de la instalación, crea automáticamente un perfil SSL predeterminado en la siguiente ubicación:
/etc/httpd/conf.d/ssl.conf
A continuación, comience apache Y configúrelo para que se inicie automáticamente cuando se inicie el servidor:
sudo systemctl start httpd sudo systemctl enable --now httpd
Verifícalo ahora apache Se ejecuta correctamente:
sudo systemctl status httpd
Si esto le ayuda a ejecutar Apache en Rocky Linux 10, Quien sigue luchando contra los viejos escenarios.
Paso 2: abra los puertos 80 y 443 en el firewall
LokiLinux Utilice firewalld para controlar el tráfico de red entrante. De forma predeterminada, sólo se permiten puertos y servicios aprobados a través del firewall.
desde apache Sirve tráfico de red regular en el puerto 80 (protocolo HTTP) y tráfico cifrado en el puerto 443 (HTTPS), ambos puertos deben estar abiertos. De lo contrario, ni siquiera los visitantes podrán acceder a su sitio. apache Funciona correctamente.
Ejecute el siguiente comando:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
Para verificar que ambos servicios estén permitidos a través del firewall, ejecute:
sudo firewall-cmd --list-services
También puede confirmar que Apache está escuchando en ambos puertos web:
sudo ss -tlnp | grep httpd

Una vez que el firewall esté listo, el siguiente paso es establecer las credenciales SSL autofirmadas correctas usando el siguiente comando Alias de tema (red de almacenamiento) apoyo.
Paso 3: crear un archivo de configuración OpenSSL usando SAN
uno Alias de tema (red de almacenamiento) especifica el nombre de host y la dirección IP para los cuales el certificado es válido; los navegadores modernos ya no dependen de nombre común (Porcelana) se utiliza solo al validar credenciales.
Si el certificado no contiene una entrada SAN, navegadores como Chrome, Firefox y Edge lo rechazarán con el siguiente error:
ERR_CERT_COMMON_NAME_INVALID
Primero cree un directorio para almacenar credenciales, claves privadas y archivos de configuración:
sudo mkdir -p /etc/ssl/store.linuxapp.com
A continuación, cree el archivo de configuración de OpenSSL:
sudo vi /etc/ssl/store.linuxapp.com/san.cnf
Agregue lo siguiente:
[req] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn x509_extensions = v3_req [dn] C = IN ST = Maharashtra L = Mumbai O = LinuxApp OU = IT CN = store.linuxapp.com [v3_req] subjectAltName = @alt_names [alt_names] DNS.1 = store.linuxapp.com DNS.2 = www.store.linuxapp.com
Esto es lo que hacen las partes importantes:
- [dn] Contiene información de identidad de credencial.
- CN (nombre común) Especifique el nombre del host principal.
- [v3_req] Habilite la expansión de credenciales.
- Nombre alternativo del tema Dígale a OpenSSL que use las entradas definidas en
[alt_names]. - DNS.1 y DNS.2 Define los nombres de host en los que los navegadores confiarán para este certificado.
En este ejemplo:
store.linuxapp.comes el sitio web principal.www.store.linuxapp.comCubre la versión www del mismo sitio web.
Si su servidor utiliza un nombre de dominio diferente, reemplace todas las apariciones de store.linuxapp.com Utilice su propio nombre de host.
También puedes agregar dominios o subdominios adicionales creando más entradas:
[alt_names] DNS.1 = store.linuxapp.com DNS.2 = www.store.linuxapp.com DNS.3 = api.store.linuxapp.com DNS.4 = admin.store.linuxapp.com
Para aplicaciones internas a las que se accede a través de direcciones IP, también puede incluir entradas SAN basadas en IP:
[alt_names] DNS.1 = store.linuxapp.com IP.1 = 192.168.1.100
Cuando haya terminado de editar el archivo, guarde y salga del editor.
Si los requisitos de SAN son una novedad para usted, Quienes recibieron un error de certificado del navegador que no pudieron explicar.
Paso 4: generar clave privada y certificado autofirmado
Ahora desde san.cnf Una vez que los archivos estén en su lugar, puede generar la clave privada y el certificado autofirmado con un solo comando.
sudo openssl req -x509 -nodes -days 365 \ -newkey rsa:2048 \ -keyout /etc/ssl/store.linuxapp.com/apache.key \ -out /etc/ssl/store.linuxapp.com/apache.crt \ -config /etc/ssl/store.linuxapp.com/san.cnf
Durante este proceso, AbiertoSSL Muestra un indicador de progreso mientras genera claves RSA.

Una vez que se complete el comando, tendrá dos archivos nuevos:
apache.key– Su clave privada.apache.crt– Su certificado SSL autofirmado.
A continuación, debe proteger su clave privada, que es el archivo más confidencial de toda la configuración, porque si alguien puede obtenerla, puede hacerse pasar por su sitio web.
sudo chmod 600 /etc/ssl/store.linuxapp.com/apache.key sudo chmod 644 /etc/ssl/store.linuxapp.com/apache.crt
Verifique que ambos archivos existan y tengan los permisos correctos.
ls -l /etc/ssl/store.linuxapp.com/
producción:
total 12 -rw-r--r--. 1 root root 1371 Jun 1 11:24 apache.crt -rw-------. 1 root root 1704 Jun 1 11:24 apache.key -rw-r--r--. 1 root root 334 Jun 1 11:24 san.cnf
Ahora verifique que la entrada SAN esté realmente integrada en la credencial.
openssl x509 -in /etc/ssl/store.linuxapp.com/apache.crt -text -noout | grep -A2 "Subject Alternative"

Si ve su nombre de host en la lista a continuación Alias de temael certificado se ha generado correctamente.
si red de almacenamiento Falta una parte o está vacía, el navegador está como aleación de cromo y Firefox Los certificados con errores de validación del nombre de host se rechazarán incluso si nombre común (CN) coincide con el nombre del sitio.
Paso 5: configurar el host virtual Apache SSL
A pesar de mod_ssl Instale el archivo de configuración SSL predeterminado (ssl.conf)es mejor crear un separado anfitrión virtual archivos para cada sitio web, lo que mantiene su configuración organizada y facilita la administración de múltiples sitios web en el mismo servidor.
Antes de configurar Apache, cree un sitio web de prueba simple en el directorio DocumentRoot para que pueda servirse a través de HTTPS.
sudo mkdir -p /var/www/store.linuxapp.com echo "" | sudo tee /var/www/store.linuxapp.com/index.html
Ahora cree un archivo de configuración de Apache dedicado:
sudo vi /etc/httpd/conf.d/store.linuxapp.com-ssl.conf
Agregue la siguiente configuración:
ServerName store.linuxapp.com ServerAlias www.store.linuxapp.com DocumentRoot /var/www/store.linuxapp.com SSLEngine on SSLCertificateFile /etc/ssl/store.linuxapp.com/apache.crt SSLCertificateKeyFile /etc/ssl/store.linuxapp.com/apache.key SSLProtocol -all +TLSv1.2 +TLSv1.3 SSLHonorCipherOrder on SSLSessionTickets off Options -Indexes +FollowSymLinks AllowOverride All Require all granted ErrorLog /var/log/httpd/store.linuxapp.com-ssl-error.log CustomLog /var/log/httpd/store.linuxapp.com-ssl-access.log combined
Guarde el archivo y salga del editor.
En este punto, Apache sabe dónde se encuentran los archivos de su sitio web y qué certificado SSL utilizar.
Si la configuración de VirtualHost aquí te salva de una madriguera de conejo Apache nocturna, .
Paso 6: agregue la redirección HTTP a HTTPS
en este punto, apache Configurar como servicio HTTPS tráfico portuario Capítulo 443. Sin embargo, los usuarios aún pueden acceder a su sitio usando http:// URL o simplemente ingrese el nombre de dominio en su navegador.
Para garantizar que todo el tráfico esté cifrado, cree un segundo VirtualHost que escuche en el puerto 80 y redirija automáticamente a los invitados a HTTPS.
Crea un nuevo perfil:
sudo vi /etc/httpd/conf.d/store.linuxapp.com.conf
Agregue la siguiente configuración:
ServerName store.linuxapp.com ServerAlias www.store.linuxapp.com Redirect permanent /
Antes de recargar Apache, asegúrese de verificar que no haya errores de sintaxis en la configuración.
sudo apachectl configtest
Si Apache encuentra un problema, muestra el archivo de configuración y el número de línea donde ocurrió el error.
AH00526: Syntax error on line 12 of /etc/httpd/conf.d/store.linuxapp.com-ssl.conf
Corrija los errores informados y ejecute configtest otra vez hasta que veas Syntax OK.
Después de verificar la configuración, vuelva a cargar apache Aplique cambios sin interrumpir las conexiones existentes:
sudo systemctl reload httpd
Puede confirmar que Apache está escuchando conexiones HTTP y HTTPS mediante:
sudo ss -tlnp | grep httpd
Ejemplo de salida:
LISTEN 0 511 *:443 *:* users:(("httpd",pid=6076,fd=6)
LISTEN 0 511 *:80 *:* users:(("httpd",pid=6076,fd=4)
Si ve entradas para ambos 80 y Capítulo 443, apache Listo para manejar solicitudes HTTP y redirigirlas a HTTPS.
Paso 7: Pruebe la configuración HTTPS
y apache recargar y servidor virtual SSL está activo, es hora de verificar que HTTPS esté funcionando correctamente.
Agregar entrada de host temporal (opcional)
Si su dominio aún no apunta a un servidor, agregue una entrada temporal a la máquina que está probando.
reemplazar 192.168.1.10 Con la dirección IP real de su servidor, esto le permite a su sistema resolver nombres de host localmente sin la necesidad de registros DNS:
echo "192.168.1.10 store.linuxapp.com www.store.linuxapp.com" | sudo tee -a /etc/hosts
Puede verificar que el nombre de host se resuelva correctamente:
getent hosts store.linuxapp.com
Ejemplo de salida:
192.168.1.10 store.linuxapp.com
Probar la conexión HTTPS
Dado que el certificado está autofirmado, curl El valor predeterminado no confiará en él, así que use -k Opción para omitir la validación de credenciales durante la prueba.
curl -kv 2>&1 | grep -E "SSL|subject|issuer|Connected"
Ejemplo de salida:
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519MLKEM768 / RSASSA-PSS * subject: C=IN; ST=Maharashtra; L=Mumbai; O=LinuxApp; OU=IT; CN=store.linuxapp.com * issuer: C=IN; ST=Maharashtra; L=Mumbai; O=LinuxApp; OU=IT; CN=store.linuxapp.com * SSL certificate verify result: self-signed certificate (18), continuing anyway. * Connected to store.linuxapp.com (192.168.122.247) port 443 Server: Apache/2.4.63 (Rocky Linux) OpenSSL/3.5.1
Verificar redireccionamiento HTTP
A continuación, confirme que todo el tráfico HTTP se redirija a HTTPS.
curl -I
Ejemplo de salida:
HTTP/1.1 301 Moved Permanently Date: Mon, 01 Jun 2026 06:20:10 GMT Server: Apache/2.4.63 (Rocky Linux) OpenSSL/3.5.1 Location: Content-Type: text/html; charset=iso-8859-1
Esto confirma que los visitantes que utilizan URL no cifradas son redirigidos automáticamente a la versión HTTPS segura del sitio.
Prueba en navegador web
Abierto En su navegador verá una advertencia de certificado, esto es esperado ya que ninguna CA reconocida firmó este certificado, así que haga clic en avanzado Y continúe confirmando que la página esté cargada y la conexión esté cifrada.

Si esta configuración ahora funciona correctamente en su servidor, ¿Quién todavía ejecuta HTTP puro en una configuración interna de Apache?
Una nota sobre la política de criptomonedas
Una de las mayores ventajas LokiLinux 10 La ventaja es que no tiene que dedicar demasiado tiempo a ajustar manualmente la configuración SSL/TLS. La distribución hereda el marco de políticas criptográficas de todo el sistema de RHEL 10, que brinda soporte para aplicaciones habilitadas para TLS como apache, nginx, Abrir SSHy otros.
Estrategias predeterminadas, apropiadamente nombradas por defectoha desactivado protocolos obsoletos y ha aplicado estándares de cifrado modernos en todo el sistema operativo.
Puede consultar las políticas actualmente activas de las siguientes maneras:
sudo update-crypto-policies --show
junto con por defecto La política es positiva, LokiLinux 10 Aplica un mínimo de TLS 1.2 y utiliza conjuntos de cifrado sólidos de forma predeterminada. Esto significa que no necesita realizar mantenimiento manual durante mucho tiempo. Conjunto de cifrado SSL Las cadenas en la configuración de Apache son solo para fines básicos de seguridad.
Es por eso que la configuración de VirtualHost en esta guía solo especifica:
SSLProtocol -all +TLSv1.2 +TLSv1.3
El sistema operativo maneja detalles de cifrado de nivel inferior, lo que hace que la configuración SSL/TLS sea más simple y consistente.
en conclusión
En esta guía, instaló apache y protocolo SSL Compatible, abra los puertos de firewall necesarios, genere un certificado autofirmado con la información adecuada Alias de tema (red de almacenamiento) entrada, configura un VirtualHost HTTPS dedicado y redirige todo el tráfico HTTP a HTTPS.
El paso de verificación SAN es particularmente importante porque garantiza que los navegadores modernos puedan verificar correctamente las credenciales. Muchos tutoriales antiguos omiten este paso y terminan con credenciales que el navegador rechaza inmediatamente.
Para servicios internos, entornos de desarrollo y sistemas de laboratorio, los certificados autofirmados proporcionan una forma sencilla de habilitar conexiones HTTPS cifradas sin depender de una autoridad de certificación externa.
Cuando esté listo para publicar su sitio en Internet, puede intercambiar sus credenciales de confianza. vamos a cifrar manteniendo lo mismo servidor virtual apache La estructura que has construido.
Si este artículo fue útil, Con alguien de tu equipo.









