Read to Upgrade? TishBusiness - Corporate and Business WordPress Theme    View Now
Pre-Title 1

This is Default Slide 1 Title

Pre-Title 2

This is Default Slide 2 Title

Conexiones SQL Server Net 8

Usuario

Modificación de la cadena de conexión para que utilice Autenticación de Windows

Data Source=SERVIDOR;Initial Catalog=QSD_v1;User ID=sa;Password=********;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False

Asistente

Para usar Autenticación de Windows (Integrated Security) con SQL Server desde C#, quita User ID y Password y añade Integrated Security.

Tu cadena quedaría así:

Data Source=SERVIDOR;
Initial Catalog=QSD_v1;
Integrated Security=True;
Connect Timeout=30;
Encrypt=False;
Trust Server Certificate=False;
Application Intent=ReadWrite;
Multi Subnet Failover=False

Integrated Security=True (o Trusted_Connection=True) indica que se usará el usuario de Windows bajo el que corre tu proceso (tu sesión si es app de escritorio; la identidad del AppPool si es IIS; el servicio si es Windows Service).

Ejemplo en C#

using (var cn = new SqlConnection(
    "Server=SERVIDOR;Database=QSD_v1;Integrated Security=True;Encrypt=False;Trust Server Certificate=False"))
{{
    cn.Open();
    // ...
}}

Requisitos en SQL Server

-- Sustituye DOMINIO\CuentaPorEjemplo por la cuenta real
CREATE LOGIN [DOMINIO\CuentaPorEjemplo] FROM WINDOWS;
USE QSD_v1;
CREATE USER [DOMINIO\CuentaPorEjemplo] FOR LOGIN [DOMINIO\CuentaPorEjemplo];
EXEC sp_addrolemember N'db_datareader', N'DOMINIO\CuentaPorEjemplo'; -- y/o db_datawriter/db_owner según necesites

Notas útiles

  • Si es una app web en IIS, la conexión usará la Identity del Application Pool. Si quieres una cuenta concreta (p. ej., de dominio), configúrala en el AppPool y dale permisos en SQL Server como arriba.
  • En entornos modernos, conviene Encrypt=True con un certificado válido. Si aún no tienes CA, durante desarrollo podrías usar Encrypt=True;Trust Server Certificate=True para evitar errores de certificado (no recomendado en producción).

Con eso deberías poder conectar con Windows Auth sin usuario/contraseña en la cadena.

Configuración de MySQL/MariaDB con SSL

🔒 Cómo configurar acceso SSL en MariaDB paso a paso

En esta guía práctica aprenderás a configurar acceso cifrado por SSL en MariaDB utilizando certificados autofirmados, con un script completo que automatiza todo: generación de certificados, configuración del servidor y ajuste de permisos.


✅ Requisitos previos

  • MariaDB instalado (ej. v10.6 o superior)
  • Acceso como root o usuario con permisos sudo
  • Sistema Linux (probado en Ubuntu Server)

🧪 Verificar soporte SSL en MariaDB

Ejecuta el siguiente comando para comprobar si MariaDB tiene soporte SSL habilitado:

SHOW VARIABLES LIKE '%ssl%';

El valor de have_ssl debe ser YES. Si no lo es, asegúrate de que MariaDB fue compilado con soporte SSL.


🔧 Script para configurar SSL en MariaDB automáticamente

Crea el archivo configurar_ssl_mariadb.sh y copia el siguiente contenido:

#!/bin/bash

SSL_DIR="/etc/mysql/ssl"
CNF_FILE="/etc/mysql/mariadb.conf.d/50-server.cnf"

echo "📁 Creando directorio SSL en $SSL_DIR..."
mkdir -p $SSL_DIR
cd $SSL_DIR || exit 1

echo "🔐 Generando certificados SSL..."

# CA
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca.pem -subj "/CN=MariaDB_CA"

# Servidor
openssl genrsa 2048 > server-key.pem
openssl req -new -key server-key.pem -out server-req.pem -subj "/CN=MariaDB_Server"
openssl x509 -req -in server-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

# Cliente
openssl genrsa 2048 > client-key.pem
openssl req -new -key client-key.pem -out client-req.pem -subj "/CN=MariaDB_Client"
openssl x509 -req -in client-req.pem -days 3650 -CA ca.pem -CAkey ca-key.pem -set_serial 02 -out client-cert.pem

echo "🔒 Ajustando permisos..."
chown mysql:mysql $SSL_DIR/*.pem
chmod 600 $SSL_DIR/*.pem

echo "🛠️ Agregando configuración SSL a $CNF_FILE..."

# Elimina líneas antiguas SSL para evitar duplicación
sed -i '/ssl-ca/d;/ssl-cert/d;/ssl-key/d' "$CNF_FILE"

# Agrega la configuración SSL
cat <<EOF >> "$CNF_FILE"

# SSL configuration added automatically
ssl-ca=$SSL_DIR/ca.pem
ssl-cert=$SSL_DIR/server-cert.pem
ssl-key=$SSL_DIR/server-key.pem
EOF

echo "✅ Configuración aplicada. Reiniciando MariaDB..."
systemctl restart mariadb

echo "🧪 Verificando estado..."
systemctl status mariadb --no-pager

echo "🎉 ¡Listo! MariaDB configurado con SSL."

Guarda y ejecuta con:

chmod +x configurar_ssl_mariadb.sh
sudo ./configurar_ssl_mariadb.sh

🧪 Verificar que SSL está activo

Conéctate a MariaDB y ejecuta:

SHOW VARIABLES LIKE 'have_ssl';
SHOW STATUS LIKE 'Ssl_cipher';

Debes ver YES y un cifrado como AES256-SHA.


🔐 Conexión desde cliente remoto con SSL

Usa el cliente mysql así:

mysql -h tu-servidor -u usuario_ssl -p \
--ssl-ca=/etc/mysql/ssl/ca.pem \
--ssl-cert=/etc/mysql/ssl/client-cert.pem \
--ssl-key=/etc/mysql/ssl/client-key.pem

🛡️ Crear usuarios que requieran SSL

Puedes crear usuarios obligando el uso de SSL:

CREATE USER 'usuario_ssl'@'%' IDENTIFIED BY 'clave' REQUIRE SSL;

O, aún más seguro, usando verificación por certificado:

sqlCopiarEditarCREATE USER 'usuario_cert'@'%' IDENTIFIED BY 'clave'
REQUIRE SUBJECT '/CN=MariaDB_Client' ISSUER '/CN=MariaDB_CA';

🧯 Problemas comunes

  • MariaDB no arranca: Verifica rutas, permisos (600), y dueño (mysql:mysql).
  • SSL_CTX_set_default_verify_paths failed: suele deberse a rutas mal definidas o certificados inválidos.

Cómo Generar un CSR para un Certificado SSL Wildcard DV de Comodo (Sectigo)

Cuando adquieres un certificado SSL wildcard DV de Comodo (ahora Sectigo), es necesario generar un CSR (Certificate Signing Request). Este archivo contiene la información necesaria para que el certificado sea emitido y valide la identidad del dominio. En esta guía te mostramos paso a paso cómo generar tu CSR correctamente desde la terminal usando OpenSSL.


📌 ¿Qué es un certificado wildcard?

Un certificado wildcard cubre todos los subdominios de primer nivel de un dominio. Por ejemplo, un wildcard para *.midominio.com protege:

  • www.midominio.com
  • mail.midominio.com
  • intranet.midominio.com
  • y cualquier otro subdominio directo.

Importante: No protege subdominios de segundo nivel como sub1.sub2.midominio.com, ni incluye automáticamente el dominio base (midominio.com).


🧰 Paso 1: Generar la clave privada

Ejecuta este comando en tu servidor:

openssl genrsa -out wildcard.midominio.com.key 2048

Esto generará una clave privada de 2048 bits. Guárdala en un lugar seguro: la necesitarás para instalar el certificado.


🧾 Paso 2: Generar el CSR

Usa el siguiente comando:

openssl req -new -key wildcard.midominio.com.key -out wildcard.midominio.com.csr

Completa los datos cuando se te solicite:

textCopiarEditarCountry Name (2 letter code) [XX]:MX
State or Province Name (full name) []:Jalisco
Locality Name (eg, city) []:Guadalajara
Organization Name (eg, company) []:MiEmpresa S.A. de C.V.
Organizational Unit Name (eg, section) []:TI
Common Name (e.g. server FQDN or YOUR name) []:*.midominio.com
Email Address []:admin@midominio.com

A challenge password []:        ← déjalo vacío  
An optional company name []:    ← déjalo vacío

📁 Archivos generados

  • wildcard.midominio.com.key: tu clave privada.
  • wildcard.midominio.com.csr: el archivo que enviarás a Comodo/Sectigo.

🔍 ¿El dominio raíz está incluido?

No. El certificado wildcard no cubre automáticamente midominio.com (sin subdominio). Solo protege subdominios directos como www.midominio.com o mail.midominio.com.

✅ ¿Cómo incluir midominio.com?

Debes solicitarlo explícitamente mediante una configuración que incluya el campo Subject Alternative Name (SAN). Algunos emisores lo permiten sin costo adicional, pero Sectigo normalmente no lo incluye por defecto en certificados wildcard DV.


✅ Verifica tu CSR (opcional)

Puedes revisar el contenido del CSR con:

openssl req -noout -text -in wildcard.midominio.com.csr

Modificar el puerto por defecto de webmin

Para modificar el puerto por defecto de la interfaz de administración de webmin hay que modificar el archivo de configuración /etc/webmin/miniserv.conf

sudo nano /etc/webmin/miniserv.conf

Buscar la línea que comienza con port= y sustituir el valor que tenga, habitualmente 10000 por el puerto que se desee establecer. Una vez guardado el archivo ejecutar:

sudo systemctl restart webmin

y verificar con:

sudo systemctl status webmin

Conexión entre servidores por ssh sin contraseña

Para la ejecución de ciertos scripts para sincronizar certificados y otros tipos de archivo entre servidores Linux es recomendable establecer la conexión sin contraseña, mediante certificado SSL.

Para ello,

Paso 1. Creamos el certificado SSL en el servidor que se va a conectar:

 ssh-keygen -t rsa -b 4096

Paso 2. Copiamos la clave pública en cada servidor al que nos queramos conectar (sustituye usuario y dirección ip del ejemplo):

ssh-copy-id root@192.168.0.100

Paso 3. Probamos que nos podemos conectar.

ssh root@192.168.0.100 hostname

Debería permitir la conexión y devolvernos la salida del comando hostname.

Paso 4. Asegurar los permisos en los servidores destino:

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh