Solucionar error: “Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist” en centos 8.

Seguimos con los errores recurrentes, puede que nos haya pasado que al instalar algún paquete con yum en centos 8 nos haya salido el siguiente error: “Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”

Este error es debido a que centos ha cambiado las urls de descarga de los paquetes de los repositorios.

Pues con estos dos pequeños comandos te explico como solucionarlo.

Con el primer comando modificaremos la linea que contiene la variable mirrorlist de todos los ficheros de la carpeta /etc/yum.repos.d que empiecen por CentOS, y la dejaremos comentada #mirrorlist.

sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*

Y con el segundo comando descomentaremos la variable comentada #baseurl y añadiremos la nueva url de los repositorios de centos, baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/$basearch/os/

sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

Como paso final actualizamos con “yum clean all” los cambios y ya podremos instalar paquetes por repositorio con yum.

yum clean all

Como convertir certificado Let’s encrypt en keystore java para tomcat (jks)

Todos conocemos Let’s encrypt, en un servicio muy comido que nos permite instalar certificados SSL seguros de manera cómoda y gratuita.

Pero desgraciadamente no los crea en formato jks y no podemos utilizarlos en servidores de aplicaciones tomcat.

Pero esto lo podemos solucionar de una manera muy fácil utilizando las herramientas openssl y keytool que nos permiten convertirlo en formato jks.

Lo primero que haremos es con openssl exportar la clave privada (privkey1.pem) y el certificado (fullchain1.pem) y guardarlo en un fichero p12 (fichero.p12) con el siguiente comando:

openssl pkcs12 -export -out fichero.p12 -inkey privkey1.pem -in fullchain1.pem -name "tomcat-cert"

A continuación con keytool generaremos el llavero jks (llavero.jks) con el siguiente comando:

keytool -importkeystore -srckeystore fichero.p12 -srcstoretype pkcs12 -destkeystore llavero.jks

Y ya tendríamos el certificado keystore creado.

Lo ultimo que tendríamos que haces es configurar el server.xml de tomcat para que utiliza el llavero creado, añadiendo la password que usamos para su creación (en el ejemplo “secreta”).

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" URIEncoding="UTF-8"
        keystoreFile="llavero.jks"
keystorePass="secreta" keyAlias="tomcat-cert"
clientAuth="false" sslProtocol="TLS" />