Mostrando entradas con la etiqueta Ubuntu. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ubuntu. Mostrar todas las entradas

viernes, 10 de enero de 2025

Ubuntu enviroment variables. Formas de crearlas

 Existen tres formas principales de configurar variables de entorno en Ubuntu:

  1. Usar el comando export en la terminal para variables temporales.
  2. Editar el archivo /etc/environment para variables permanentes de todo el sistema
  3. Crear un shell script en la carpeta /etc/profile.d/ específicico del usuario.
  4. El archivo ~/.profile.
  5. El archivo ~/.bashrc.

martes, 17 de octubre de 2023

Ubuntu clonar disco duro con dd

0. Es recomendable arrancar el ordenador con un USB de Ubuntu y realizar estos pasos:


 1. Entrar en la herramienta disc y verlos dispositivos originales (/dev/sda) y los de copia (/dev/sdc) y comprobar que el disco que recibira la copia sea mayor que el original!


2. Ejecutar este comando para ver el progreso y esperar

sudo dd if=/dev/sda of=/dev/sdc bs=64K conv=noerror,sync status=progress

3. Cambiar los discos físicos , arrancar el ordenador y para que reconozca el nuevo tamaño de disco mayor hay que arancar con un USB con UBUNTU. y desde ahí en la herramienta gráfica disc podemos:

  1.  ampliar el tamaño del disco y 
  2.  reparar la unidad /dev/sda6 en mi caso

4. Comprobar que podemos escribir en dicho disco (por ejemplo haciendo ls>kk.txt)

5. Apagar el ordenador y quitar el USB y verificar que va bien

jueves, 20 de abril de 2023

Ubuntu. Buscar ficheros con contenido de modo recursivo

 Primeramente nos situamos en el direcotrio que queramos buscar

Ejecutamos este script

grep -inr --include \*.java "IRPF" ./ /home/ximo/IRPF_files_java.txt

donde

\*.java indica la extensión de los ficheros, en este caso son los ficheros con extensión ".java"

"IRPF" es el texto a buscar dentro de los ficheros

./ es la ruta donde buscar. Indica la carpta actual

> /home/ximo/IRPF_files_java.txt es el fichero donde se guardaran los resultados.




miércoles, 8 de diciembre de 2021

Instalar certificado LetsEncrypt en Tomcat Ubuntu manual. Shell de actualización del certificado

 0. Introducción

Vamos a seguir a Mahdi Mashrur Matin a ver si esta vez sale bien. 

1. Prerequisitos

  • Tener privilegio de superusuario
  • Tener un dominio registrado ("webprop.es" en mi caso)
  • Versión de Java reciente instalada
  • Versión reciente de Tomcat instalada
  • Tener abiertos los puertos 80 y 8443 en el firewall
  • Tener instalado Openssl

2. Instalar Certbot

Tal como vimos en el fallido blog anterior, primero añadimos al repositorio

  • sudo add-apt-repository ppa:certbot/certbot

Instalamos el paquete Apache Certbot

  • sudo apt install python-certbot-apache


3. Genera keypair y el certificado sobre el dominio con Certbot.


En el fallido blog anterior, estos ficheros si que los tenemos (por tanto podemos saltar este paso). 

Para los que no hayais pasado por el blog anterior, debeis ejecutar:

sudo certbot certonly --standalone -d myweb.es

Y si toda ha ido bien, en el directorio /etc/letsencrypt/live/myweb.es (OJO: normalmente las direcciones suelen ser "csv.rocasdemar.es"  o algo por el estilo, siendo el directorio /etc/letsencrypt/live/csv.rocasdemar.es) Deben existir estos ficheros:
  • cert.pem (certificado "solo")
  • chain.pem (cadena de certificados del root)
  • fullchain.pem (certificado "solo" + cadena de certificados del root. Equivale a los 2 ficheros anteriores juntos)
  • privkey.pem (clave privada)
Si no utilizais LetsEncript, tenéis que realizar estos pasos:
=============================================================
1. Generar un par de clave privada y el CSR público (Certificate Signing Request) para el servidor web ("server"), con este comando

openssl req -nodes -newkey rsa:2048 -keyout domain.name.key -out domain.name.csr

2. Enviar el CSR al la entidad certificadora (CA) y ésta verificará tu dominio, y te suministrará un certificado (fichero .crt)  y cadena de certificados (certificate chain)
=============================================================

4. Configurar https en el puerto 19443 u otro de forma fácil (Opción recomendada)

Modificamos el conector en el fichero server.xml de la carpeta conf de tomcat y para el puerto 19443 para que quede así

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
 <Connector port="19443"
     protocol="HTTP/1.1"
     SSLEnabled="true"
     maxThreads="150"
     scheme="https"
     secure="true"
     sslProtocol="TLS"

     clientAuth="true"
     keyAlias="tomcat"


     SSLCertificateFile="/etc/letsencrypt/live/midominio.es/cert.pem"
     SSLCertificateChainFile="/etc/letsencrypt/live/midominio.es/chain.pem"
     SSLCertificateKeyFile="/etc/letsencrypt/live/midominio.es/privkey.pem"
 />


5. Renovar el certificado en el servidor

Solo hace falta ejecutar el comando visto anteriormente, y ya está

sudo certbot certonly --standalone -d myweb.es

Si no funciona pues dice 
Problem binding to port 443: Could not bind to IPv4 or IPv6
Entonces hay que parar el servidor (./shutdown.sh) y ejecutar el comando anterio cambiando
 --standalone por --apache

sudo certbot certonly --apache -d myweb.es

PERO DA PROBLEMAS SI SE ACCEDE DESDE FUERA DE LA ORGANIZACION.


Lo mejor en estos casos es volver a instalar el cerbot, (paso 2)
Solo hay que reaarancar el Tomcat, para ello vamos al directorio "bin" del tomcat y ejecutamos

./shutdown.sh
./startup.sh

6. Configurar https en el puerto 8443 u otro con conversiones (NO RECOMENDADO)

El problema es que queremos utilizar el formato JKS, por tanto tenemos que realizar 2 conversiones

6.1. Convertir "keypair" + certificado a java keystore

1. Crear un PKCS12 que contenga la cadena de certrificados completa y la clave privada con openssl

openssl pkcs12 -export -out /tmp/webprop.es_fullchain_and_key.p12 \ -in /etc/letsencrypt/live/webprop.es/fullchain.pem \ -inkey /etc/letsencrypt/live/webprop.es/privkey.pem \ -name tomcat

2. Convertir el PVCS12 a JKS con keytool de java

keytool -importkeystore \ -deststorepass mi_password -destkeypass mi_password -destkeystore /tmp/webprop.es.jks \ -srckeystore /tmp/webprop.es_fullchain_and_key.p12 -srcstoretype PKCS12 -srcstorepass mi_password \ -alias tomcat


Donde hay que cambiar mi_password por la contraseña que querais

Si no utilizais LetsEncript, tenéis que realizar estos pasos:
=============================================================
1. Con el paso del punto anterior ya tienes la clave privada (fichero .key) y el certificado (fichero .cert) de la entidad certificadora. Se deberá generrar el fichero pfx, con este comando

openssl pkcs12-export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

2. Convertir el fichero pfx a JKS

keytool-importkeystore -srckeystore webprop.pfx -srcstoretype pkcs12 \ -destkeystore webprop.jks -deststoretype JKS

=============================================================

6.2. Configurar Tomcat con el java keystore


Aseguratrse que esta sección de conf/server.xml está comentada 

<!--- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> -->

Y configurar el conector para que use el "shared thread pool" 

<Connector
executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

Ahora definir el conector SSL HTTP/1.1 En el puerto 8443

<Connector port="8443"
<!-- protocol="org.apache.coyote.http11.Http11Protocol"-->
protocol="HTTP/1.1"
maxThreads="150" cd ..
SSLEnabled="true"
scheme="https"
secure="true" keystoreFile="/tmp/webprop.es.jks" keystorePass="mi_password" clientAuth="false"
sslProtocol="TLS" />

NOTA: He tenido que comentar la línea:
 "<!-- protocol="org.apache.coyote.http11.Http11Protocol"-->
y cambiarla por la línea de rojo (protocol="HTTP/1.1") pues no me funcionaba.

Ahora hay que rearrancar el Tomcat y debería funcionar. Aunque a mi me ha tardado mucho en arrancar!!


6.3. Crear un shell scrypt para renovar el certificado.

Para ello debemos tener los siguientes prerequisitos:
  • Tener privilegio de superusuario
  • Tener un dominio registrado ("webprop.es" en mi caso)
  • Versión de Java reciente instalada
  • Versión reciente de Tomcat instalada
  • Tener abiertos los puertos 80 y 8443 en el firewall
  • Tener instalado Openssl
  • Tener configurado Tomcat para el puerto 8443 tal como hemos visto en el punto anterior
Veamos el bash

#!/bin/bash

#--Explicació
#---------------------------------------------------------------------------
# S'ha d'executar des de la màquina que s'ha d'instal·lar el certificat 
# Ha d'estar instal·lat el cerbot a la màquina:
#    sudo add-apt-repository ppa:certbot/certbot
#    sudo apt install python-certbot-apache

# La carpeta /etc/letsencrypt/live/csv.tavernesvalldigna.es/ ha de tindre 
#   permissos d'escritura per a eviar cridar-la amb "sudo" 
#   per tant cal executar abans esta orden:    
#     sudo chmod -R ugo+rwx /etc/letsencrypt
#     sudo chmod -R ugo+rwx /var/log
#     sudo chmod -R ugo+rwx /var/lib/letsencrypt

# 1. Indicar el domini
# 2. Indicarla carpeta on guarda el certbot els certificats
# 3. Indicar la carpeta on guardar els certificats tipus jks
#    que és la ruta on Tomcat els busca
# 4. Indicar la paraula de pas del certificat
#---------------------------------------------------------------------------

#--Parameters
myuser='ximo'
domain='webprop.es'
download_certbot='/etc/letsencrypt/live/'${domain}
keystore_folder='/home/'${myuser}'/MyKeystores'
psswrd='mi_password'

work_folder=${keystore_folder}'/letsencrypt/'$(date +%Y.%m.%d)
ks_prefix=${work_folder}'/'${domain}
JAVA_HOME='/home/'${myuser}'/MyPrograms/jdk-15.0.2+7.OpenJ7'

echo '--------------------------------------------------------------'
echo 'Usuari:           ' $myuser
echo 'Domain:           ' $domain
echo 'Descarga Certbot: ' $download_certbot
echo 'Keystore folder:  ' $keystore_folder
echo 'Paraula de pas :  ' $psswrd
echo 'Work folder :     ' $work_folder
echo 'Keystore prefix : ' $ks_prefix
echo 'JAVA_HOME :       ' $JAVA_HOME
echo '--------------------------------------------------------------'

certbot certificates

echo '--------------------------------------------------------------'
echo Por favor, verificar que los datos son correctos
read continuar

# No se si vol "csv.tavernesvalldigna.es" o si "vol sols tavernesvalldigna.es"
# Descarreguem  el certificat a /etc/letsencrypt/live/csv.tavernesvalldigna.es/ 
certbot certonly --standalone -d ${domain}

echo Creem la carpeta ${work_folder}
mkdir -p ${work_folder}
 
echo Convertir el p12 i el pem a PKCS12 
openssl pkcs12 -export -out ${ks_prefix}'_fullchain_and_key.p12' -in ${download_certbot}'/fullchain.pem' -inkey ${download_certbot}'/privkey.pem' -password pass:${psswrd} -name 'tomcat'


echo Convertir el PKCS12 a JKS 
$(${JAVA_HOME}'/bin/keytool' -importkeystore -deststorepass ${psswrd} -destkeypass ${psswrd} -destkeystore ${ks_prefix}'.jks' -srckeystore ${ks_prefix}'_fullchain_and_key.p12'  -srcstoretype PKCS12 -srcstorepass ${psswrd} -alias 'tomcat')

echo Copiar a la carpeta MyKeystore 
cp ${ks_prefix}'.jks' ${keystore_folder} 



jueves, 2 de diciembre de 2021

(FALLA) Instalar certificado LetsEncrypt en Apache Ubuntu server

0. Introducción

Se ha seguido esta web de Digital Ocean y Devanswers 

1. Identificar el dominio

Para tener un dominio virtual hay que tener un servidor de DNS que reconozca a dicho dominio para que lo redireccione.

En el caso que no lo tengamos, para hacer las pruebas el punto 2 debemos modificar el fichero /etc/hosts para que pueda ver ese nombre, tanto en el servidor local como en cada una de las máquinas que quieran acceder a dicho servidor.

En ese caso se definirán los dominios o hosts (webprop.es y www.webprop.es)

NOTA: Para que letsencrypt pueda darte un certificado, debes tener el dominio registrado, es decir, que cualquiera, desde cualquier sitio pueda hacer un ping a tu dominio y que esté localizable. Para ello se puedes probar el google cloud DNS que tiene un período de pruebas. Yo no lo he probado, pero algunos dicen que funciona.

Para poder gestionar el dominio debes:

a. Crear el dominio y registrarlo

b. En tu firewall debes redirigir este dominio a la máquina y puerto correcto

c. En tu servidor interno de DNS debes redirigir el dominio a tu máquina y puerto internos correcto para que no vaya al exterior y vuelva a entrar


2. Localizar los ficheros de configuración

Fichero nº1:

Veamos el primer fichero de configuración (según Rich Bowen) , para ello ejecutamos

httpd -V

Y si no la encuentra, ejecutar esta otra

apache2ctl -V

Y contesta esto

Server version: Apache/2.4.29 (Ubuntu)

Server built:   2021-09-28T22:27:27

Server's Module Magic Number: 20120211:68

Server loaded:  APR 1.6.3, APR-UTIL 1.6.1

Compiled using: APR 1.6.3, APR-UTIL 1.6.1

Architecture:   64-bit

Server MPM:     event

  threaded:     yes (fixed thread count)

    forked:     yes (variable process count)

Server compiled with....

 -D APR_HAS_SENDFILE

 -D APR_HAS_MMAP

 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

 -D APR_USE_SYSVSEM_SERIALIZE

 -D APR_USE_PTHREAD_SERIALIZE

 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

 -D APR_HAS_OTHER_CHILD

 -D AP_HAVE_RELIABLE_PIPED_LOGS

 -D DYNAMIC_MODULE_LIMIT=256

 -D HTTPD_ROOT="/etc/apache2"

 -D SUEXEC_BIN="/usr/lib/apache2/suexec"

 -D DEFAULT_PIDLOG="/var/run/apache2.pid"

 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

 -D DEFAULT_ERRORLOG="logs/error_log"

 -D AP_TYPES_CONFIG_FILE="mime.types"

 -D SERVER_CONFIG_FILE="apache2.conf"

Donde podemos adivinar que el fichero de configuración del httpd es /etc/apache2/apache2.conf

que se ha obtenido al unir las 2 cadenas marcadas en color azul y rojo

Este fichero lo utilizaríamos si quisiésemos tener más de un nombre de dominio junto diferentes IPs para un mismo servidor y se acutaría creando diferentes entradas de <VirtualHost IP:80> en este fichero, indicacando diferentes IPs para cada servidor virtual, por ejemplo 

<VirtualHost 172.20.30.40:80>

Para el caso de querer tener un solo dominio, me parece más sencillo utilizar el segundo fichero que expongo a continuación

Fichero nº2:

Vamos a la carpeta /etc/apache2/sites-available  y en mi caso hago un ls y veo que hay 2 ficheros: 000-default.conf y default-ssl.conf siendo el primero el que nos interesa.

Supongamos que queremos definir untenmos un dominio llamado webprop.es para ello editamos el fichero 000-default.conf y le dejamos este contenido

sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
    ServerAdmin webmaster@webprop.es
    ServerName webprop.es
    ServerAlias www.webprop.es
    DocumentRoot /var/www/webprop.es/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Ojo: en la primera línea vemos que para cualquier IP le asignamos el dominio que definimos posteriormente (webprop)

Salvamos con CTRL + O y salimos conCTRL + X,

Ahora creamos un directorio

sudo mkdir -p /var/www/webprop.es/public_html

Creamos un fichero index.html (que és el que nos dará la bienvenida al apuntar con el navegador (http://webprop.es/) para probar

sudo nano /var/www/webprop.es/public_html/index.html
<html>
   <head>
     <title>Welcome!</title>
   </head>
   <body>
      <h1>Welcome to webprop.es! Hava a nice day!</h2>
   </body>
</html>
Salvamos con CTRL + O y salimos conCTRL + X,


Ahora comprobamos errores

apachectl configtest

y nos da errores

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Para definir la directiva ServerName globalmente tenenos que modificar el fichero 1 ( /etc/apache2/apache2.conf) :

sudo nano /etc/apache2/apache2.conf
Y le añadimos esta línea al final

ServerName webprop.es

Salvamos con CTRL + O y salimos conCTRL + X,

Reiniciamos el servidor apache y si le damos otra vez a comprobar errores (apachectl configtest) vemos que ya no tenemos errores.


3. Instalar Certbot

Añadimos al repositorio

  • sudo add-apt-repository ppa:certbot/certbot

Instalamos el paquete Apache Certbot

  • sudo apt install python-certbot-apache

4. Obtener un certificado SSL

OJO: Como requisito previo, debemos tener abierto el firewall en el puerto 80 para este dominio  !!!!!!!
Esto conlleva muchas vulnerabilidades, por tanto, dejarlo solamente abierto por el tiempo necesario para que LetsEncrypt pueda verificar que el servidor existe !

Ejecutamos

sudo certbot --apache
o también podemos indicarle el dominio directamente

sudo certbot --apache -d webprop.es

Nos pide un email y luego nos pide que estemos de acuerdo

Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel:

A continuación nos sugiere que recibamos información al respecto

Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.

Ahora nos dice que dominios queremos activar

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: webprop.es
2: www.webprop.es
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):

Aceptamos todos y SI NO HEMOS CREADO UN DOMINIO REGISTRADO, NOS DA ESTOS ERRORES:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for webprop.es
http-01 challenge for www.webprop.es
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. www.webprop.es (http-01): urn:ietf:params:acme:error:dns :: DNS problem: NXDOMAIN looking up A for www.webprop.es - check that a DNS record exists for this domain, webprop.es (http-01): urn:ietf:params:acme:error:dns :: DNS problem: NXDOMAIN looking up A for webprop.es - check that a DNS record exists for this domain

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: www.webprop.es
   Type:   None
   Detail: DNS problem: NXDOMAIN looking up A for www.webprop.es -
   check that a DNS record exists for this domain

   Domain: webprop.es
   Type:   None
   Detail: DNS problem: NXDOMAIN looking up A for webprop.es - check
   that a DNS record exists for this domain

Por tanto hay que tener los dominios registrados, y abierto el puerto 80 en el firewall, ya que si no le hemos hecho puede responder que hay un conncetion time-out por no poder acceder al puerto 80. En este caso contesta favorablemente
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Pero yo le he contestado la opción 2 y me contesta

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for webprop.es
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/000-default-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/000-default-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/000-default-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/000-default.conf to ssl vhost in /etc/apache2/sites-available/000-default-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://webprop.es

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=webprop.es
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/webprop.es/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/webprop.es/privkey.pem
   Your cert will expire on 2022-03-07. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
Pero mi gozo en un pozo, pues no me deja utilizar el puerto 8443, solo el puerto 80 y 443

Veamos como solucionar el entuerto 

5. Deshacer el entuerto

1. Debemos ver si al menos los certificados se han descargado, para ello hacemos:

sudo certbot certificates
y nos muestra
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: webprop.es
    Domains: webprop.es
    Expiry Date: 2022-03-07 12:30:51+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/webprop.es/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/webprop.es/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Con lo que nuestros certificados parecen totalmente generados
Si vamos al directorio  /etc/letsencrypt/live/webprop.es , vemos que están estos ficheros:
  • cert.pem
  • chain.pem
  • fullchain.pem
  • privkey.pem
  2. Tenemos que advertir que ha cambiado la configuración del Tomcat, en concreto:

  2.1. En el fichero /etc/apache/etc/apache2/sites-available/000-default.conf ha añadido líneas de configuración al final de la etiqueta <VirtualHost *:80> que debemos eliminar o comentar
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.csv.tavernesvalldigna.es [OR]
RewriteCond %{SERVER_NAME} =csv.tavernesvalldigna.es
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Con lo que nos queda

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

#       ServerAdmin webmaster@localhost
#       DocumentRoot /var/www/html


        ServerAdmin webmaster@webprop.es
        ServerName webprop.es
ServerAlias webprop.es
DocumentRoot /var/www/webprop.es/public_html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf #Added by CertBot #RewriteEngine on #RewriteCond %{SERVER_NAME} =www.csv.tavernesvalldigna.es [OR] #RewriteCond %{SERVER_NAME} =csv.tavernesvalldigna.es #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>

2.2 También ha credo el fichero /etc/apache/etc/apache2/sites-available/000-default-le-ssl.conf que debemos borrar.

2.3 Parece ser que el fichero conf/server.xml no ha cambiado.

Vamos ahora a la siguiente entrada del blog para arreglar el asunto.



domingo, 16 de mayo de 2021

Ubuntu 18+ 20 + problema de pérdida del teclado. Ubuntu 22 + 23 problema de acentos en chrome, chromiums, etc

1. Problema de pérdida del teclado

Parece ser que el problema se produce cuando ser instala o reinstala ubuntu y tenemos teclado y/o ratón conectado al USB.

Puede que funcione haciendo:

1. Desconectar el teclado y/o ratón adicionales enganchados al puerto USB

2. Desde un terminal teclear sudo apt-get update para actualizar 

3. Eliminar aquel software que no es útil sudo apt autoremove 

4. Reinstalar Ubuntu desde terminal sudo apt install --reinstall ubuntu-software 

5. Prueba a enchufar el teclado y ratón al puerto USB.


Es conveniente arrancar la máquina SIN el teclado y ratón USB. En versiones anteriores (16) a veces no arrancaba.

1. Problema de omisión de acentos en chromium y sus derivados (Chrome, Brave..)

Créditos: https://bugs.chromium.org/p/chromium/issues/detail?id=367103#c114

Hay que borrar el fichero .xinputrc del directorio home (/home/ximo/..xinputrc)


martes, 11 de mayo de 2021

Ubuntu Links (vínculos de ficheros)

 1. Crear un link no permanente a un fichero (cuando rearrancamos se pierde)

ln -sfn <source_file_directory> <link_file_directory>

   la opción -f es para forzar la creación del enlace en caso que exista

   la opción -n es para no dereferenciar el fichero fuente en caso que sea un enlace 


2. Crear un link  permanente a un fichero (quitamos la opcion -s)

ln <source_file_directory> <link_file_directory>


3. Verificar el link

ls -l link_file_directory


4. Borrar el enlace

unlink -l link_file_directory

tambien se puede borrar el link rm link_file_directory


5. Obtener el path de un enlace (la ruta completa a la carpeta donde esta). supongamos que en la carpeta donde estamos hay un víncuo a un fichero o carpeta. 

readlink link_file_directory






lunes, 3 de mayo de 2021

Ubuntu establecer la variable PATH definitivamente

 Según HackProgramming se puede hacer modificando el fichero ~/.profile

Se le puede añadir esto al fichero (se le añade al path la carpeta MyShells al PATH)


# set PATH so it includes user's private MyShells if it exists

if [ -d "$HOME/MyShells" ] ; then

    PATH="$HOME/MyShells:$PATH"

fi


y ahora le damos este comando para que recoja el nuevo PATH

source ~/.profile

Y ya podemos ver esta carpeta en el path haciendo

echo $PATH




viernes, 12 de marzo de 2021

Ubuntu 20.04 Arancar un script como servicio. Caso particular de tomcat

1. Definir un servicio simple

Se ha consultado a https://linuxconfig.org/how-to-run-script-on-startup-on-ubuntu-20-04-focal-fossa-server-desktop


1.  Ir a /etc/systemd/system

2. Crear el fichero socket-server.service


[Unit]
After=network.service

[Service]
ExecStart=/home/informatica/MyPrograms/SOCKET_SERVER/startup_SocketServer.sh

[Install]
WantedBy=default.target
3. El script a ejecutar (startup_SocksetServer.sh) es

#!/bin/bash

# 1. show all arguments
echo $@

# 2. Mostra directori
myFolder=`dirname "$0"`
echo "The present working directory is $myFolder"



#3. Execute java program
/home/informatica/MyPrograms/jdk-15.0.2/bin/java -jar $myFolder/socketserver.jar S

4. Cambiar permisos

  1. $ sudo chmod 744 /home/informatica/MyPrograms/SOCKET_SERVER/startup_SocketServer.sh
    $ sudo chmod 664 /etc/systemd/system/socket-server.service
5. Arrancar el servicio

  1. $ sudo systemctl daemon-reload
    $ sudo systemctl enable socket-server.service
    






miércoles, 30 de diciembre de 2020

Ubuntu. Solucionar apt-get update “the following signatures couldn’t be verified because the public key is not available”

Introducción


Para solucionar el problema he recurrido a Chris Jean 

Quiero utilizar el programa Sikulix para probar software, y para utilizar la parte de OCR para buscar texto, se necesita innstalar el OCR Tesseract 4.0.1 mínimo, y resulta que la clave pública no está en mi sistema y por tanto no se pueden instalar estos paquetes.

He hecho lo siguiente:

1. Cargar el repositorio

sudo add-apt-repository ppa:alex-p/tesseract-ocr

con lo que me sale una ratahila de mensajes y en concreto uno de ello me dice:

Las firmas siguientes no se han podido verificar porque la clave pública no está disponible: NO_PUBKEY F7E06F06199EF2F2

2. Actualizar el software

sudo apt-get update

y constesta entre otras cosas.

Las firmas siguientes no se han podido verificar porque la clave pública no está disponible: NO_PUBKEY F7E06F06199EF2F2
N: No se puede actualizar de un repositorio como este de forma segura y por tanto est desactivado per omisión.
N: Mire la página de manual apt-secure(8) para ver los detalles sobre la creación de repositorios y la configuración de usuarios.


3. Para añadir las claves públicas, Chris propone:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F7E06F06199EF2F2

Vamos a probar a ver si ya se puede instalar el software.

Sikulixpara ello hacemos:(Sikulix-RaiMan)

sudo add-apt-repository ppa:alex-p/tesseract-ocr
sudo apt-get update
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo ldconfig

y para ver la version

tesseract -v

Que nos devuelve:

tesseract 4.1.1

 leptonica-1.78.0

  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.2) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0

 Found AVX2

 Found AVX

 Found FMA

 Found SSE

 Found libarchive 3.2.2 zlib/1.2.11 liblzma/5.2.2 bz2lib/1.0.6 liblz4/1.7.1

Con lo que ya lo tenemos instalado