02 mayo 2019 [Java, Programming, Tech]
Nuestra misión: crear un certificado autofirmado para el servidor web Apache que nos permita conectarnos a él mediante HTTPS (SSL/TLS) desde programas Java.
La parte complicada para mí fue crear un certificado que contenga un nombre alternativo del sujeto para mi servidor, que es necesario para conectarme desde Java.
Usaremos el comando openssl.
Cree un certificado autofirmado para Apache HTTPD
Primero cree un archivo de configuración cert.conf:
[ req ]
distinguished_name = subject
x509_extensions = x509_ext
prompt = no
[ subject ]
commonName = Example Company
[ x509_ext ]
subjectAltName = @alternate_names
[ alternate_names ]
DNS.1 = example.com
En el ejemplo anterior, reemplace “ejemplo.com” con el nombre que usaría para el host cuando se conecte desde Java. Esto es importante porque Java requiere que el nombre del certificado coincida con el nombre utilizado para conectarse al servidor. Si lo conecta como localhost, simplemente ingrese “localhost”. Nota: no incluya ” ni ningún puerto o ruta después del nombre de host, por lo que “example.com:8080/mypath” es incorrecto; debería ser simplemente “example.com”.
La sección de nombre alternativo anterior proporciona el “Nombre alternativo del sujeto” para este certificado. Puede agregar más como “DNS.2”, “DNS.3”, etc.
A continuación, cree una clave de servidor y un certificado autofirmado:
openssl genrsa 2048 > server.key chmod 400 server.key openssl req -new -x509 -config cert.conf -nodes -sha256 -days 365 -key server.key -out server.crt
Ahora tiene dos archivos nuevos: server.key y server.crt. Estos son los archivos que utilizará Apache HTTPD, así que colóquelos en algún lugar útil (por ejemplo, dentro de /usr/local/apache2/conf/) y consulte los archivos de configuración de Apache usando las claves “SSLCertificateKeyFile” y “SSLCertificateFile” respectivamente. Para obtener más información, consulte las instrucciones SSL/TLS.
Compruebe que el certificado esté en uso
Enciende tu Apache y asegúrate de poder conectarte a través de HTTPS usando curl:
curl -v --insecure
Reemplace “” arriba con la URL completa (esta vez, incluya ” así como el puerto y la ruta.
Para verificar el certificado devuelto, ejecute:
openssl s_client -showcerts -connect example.com:8080
Reemplace “example.com:8080” arriba con el nombre de host y el puerto (¡no “https:// esta vez!”).
Conexión desde Java
Para poder conectarnos desde Java necesitamos una Trust Store. Podemos crearlo en formato PKCS#12 mediante:
openssl pkcs12 -export -passout pass:000000 -out trust.pkcs12 -inkey server.key -in server.crt
Nota: Java 8 en adelante puede usar archivos .pkcs12 (PKCS#12) para su almacén de confianza. También se puede utilizar el antiguo formato .jks (Java Key Store), pero ya no se utiliza.
Ahora que tiene un archivo que podemos usar como almacén de confianza, siga mi otro artículo para conectarse desde Java a través de HTTPS con un certificado autofirmado.
PakarPBN
A Private Blog Network (PBN) is a collection of websites that are controlled by a single individual or organization and used primarily to build backlinks to a “money site” in order to influence its ranking in search engines such as Google. The core idea behind a PBN is based on the importance of backlinks in Google’s ranking algorithm. Since Google views backlinks as signals of authority and trust, some website owners attempt to artificially create these signals through a controlled network of sites.
In a typical PBN setup, the owner acquires expired or aged domains that already have existing authority, backlinks, and history. These domains are rebuilt with new content and hosted separately, often using different IP addresses, hosting providers, themes, and ownership details to make them appear unrelated. Within the content published on these sites, links are strategically placed that point to the main website the owner wants to rank higher. By doing this, the owner attempts to pass link equity (also known as “link juice”) from the PBN sites to the target website.
The purpose of a PBN is to give the impression that the target website is naturally earning links from multiple independent sources. If done effectively, this can temporarily improve keyword rankings, increase organic visibility, and drive more traffic from search results.