1
8

Montar servidor tomcat


#El código esta en la version 17. Mirar como instalar esa.

(El ejemplo viene de netbean)

1.archivo proncipal '@SpringBootApplication'

	@SpringBootApplication
	public class TemplateApplication {

		public static void main(String[] args) {
			SpringApplication.run(TemplateApplication.class, args);
		}

	}

	Agregamos:

	@SpringBootApplication
	public class TemplateApplication extends SpringBootServletInitializer{

		public static void main(String[] args) {
			SpringApplication.run(TemplateApplication.class, args);
		}

			@Override
		protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
			return application.sources(TemplateApplication.class);
		}

	}
//en mi codigo estan los cambios en un archivo separado
2.comentar puerto antes de subirlo en application.properties
3. Pom el empaquedao debe estar en war
      de
	jar	
	  a
	war
4. Pom	agregar dependencia relativa al tomcat

		
			org.springframework.boot
			spring-boot-starter-tomcat
			provided
		
5. Maven Clean 
6. Maven build..
    con el valor Goals:'package'
    + ver que los paquetes del test y del inicio de la aplicacion sean iguales (Para los casos en los que se re-utilizan proyectos)


en el servidor:
7.
Guía de instalación:
	sudo apt update
	sudo add-apt-repository ppa:linuxuprising/java
	sudo apt update
	sudo apt install oracle-java17-installer
	sudo apt update
	java -version
	sudo apt install oracle-java17-set-default
	
	sudo apt install tomcat9 tomcat9-admin
	sudo systemctl status tomcat9
	sudo apt install default-jdk
	sudo systemctl restart tomcat9
	sudo systemctl status tomcat9
	ss -ltn
	sudo nano /etc/tomcat9/tomcat-users.xml
	
Cambiar el los dos puntos al inicio por menor que mayor que 
	 
	sudo systemctl restart tomcat9
	http://127.0.0.1:8080/manager/html
	
	sudo apt install netbeans
------

	preparamos el servidor
		sudo apt update
	instalamos el JDK (Java)
		sudo apt install default-jdk
	descargamos el tomcat correspondiente
	 	wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.19/bin/apache-tomcat-10.1.19.tar.gz
	descomprimimos el tomcat en alguna carpeta, en este caso '/opt'
		sudo tar -xf apache-tomcat-10.1.19.tar.gz  -C /opt
	borramos el comprimido descargado
		rm apache-tomcat-10.1.19.tar.gz
	iniciar el servidor apache:
		sudo /opt/apache-tomcat-10.1.19/bin/startup.sh
----



wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.19/bin/apache-tomcat-10.1.19.tar.gz

	8. deployar app	
	Guardar *.war
		cd	/opt/apache-tomcat-10.1.19/webapps

    
        

Crear SSL a partir de certificado creado por certbot

Poder conectarnos por https, nos ahorra problemas complejos en el futuro, así que mejor hacerlo cuanto antes

Si ya tenemos creado para el dominio un certificado y queres que el servidor que comparte el dominio pero en otro puerto tenga el mismo certificado vamos a convertirlo

Cambia 'dominio' por el dominio que uses y 'CONTRASEÑA' por una contraseña segura

    1. Ubicar los certificados generados por Certbot:
    
    Certbot generalmente guarda los certificados en el directorio 
    /etc/letsencrypt/live/dominio.com/. Deberías tener los siguientes archivos:

    fullchain.pem: El certificado completo de la cadena.
    privkey.pem: La clave privada.
    
    2. Convertir los archivos PEM a un formato Java Keystore (JKS):
    Tomcat requiere un keystore para configurarse con SSL. Puedes usar el comando openssl y keytool para convertir los archivos.

    Primero, convierte los archivos PEM a un PKCS12 keystore:

    openssl pkcs12 -export -in /etc/letsencrypt/live/dominio.com/fullchain.pem -inkey /etc/letsencrypt/live/dominio.com/privkey.pem -out /etc/letsencrypt/live/dominio.com/keystore.p12 -name tomcat -CAfile /etc/letsencrypt/live/dominio.com/chain.pem -caname root
    
    Luego, convierte el archivo PKCS12 a un JKS keystore:

    keytool -importkeystore -deststorepass TuContraseñaKeystore -destkeypass CONTRASEÑA

Configurar Tomcat para usar el keystore y poder conectar por SSL

    1. Modificar archivo server.xml ( ... /tomcat/conf)
    1.1. redirigir a SSL des del el puerto 8080
        
    
    1.2. Agregar puerto para SSL (Debe estar habilitado e el firewall del servicio que hayamos contratado)
    
        
            
        
    
    2. Permisos
        Tanto el certificado como la carpeta deben tener permisos adecuados (las carpetas que contienen el archivo deben estar con 'x')

        usar:
        sudo chmod o+x /etc/letsencrypt /etc/letsencrypt/live /etc/letsencrypt/live/dominio.com

        sudo systemctl restart tomcat
        systemctl reload apache2



        t
        [root@vps... /opt/tomcat/logs] # ls -l /etc/letsencrypt/live/dominio.com/keystore.jks
        -rw-r----- 1 tomcat tomcat 2901 Jul 12 17:02 /etc/letsencrypt/live/dominio.com/keystore.jks


        [root@vps... /opt/tomcat/logs] # ls -l /etc/letsencrypt/live/dominio.com/
        total 12
        -rw-r--r-- 1 root   root    692 Jan  9  2024 README
        lrwxrwxrwx 1 root   root     39 Jul  8 07:40 cert.pem -> ../../archive/dominio.com/cert4.pem
        lrwxrwxrwx 1 root   root     40 Jul  8 07:40 chain.pem -> ../../archive/dominio.com/chain4.pem
        lrwxrwxrwx 1 root   root     44 Jul  8 07:40 fullchain.pem -> ../../archive/dominio.com/fullchain4.pem
        -rw-r----- 1 tomcat tomcat 2901 Jul 12 17:02 keystore.jks
        -rw------- 1 root   root   2687 Jul 12 17:00 keystore.p12
        lrwxrwxrwx 1 root   root     42 Jul  8 07:40 privkey.pem -> ../../archive/dominio.com/privkey4.pem

EtiquetasInglés
Brian A. Chacón
Desarrollador de Software
Desarrollador de Software Fullstack, con experiencia tanto en Java como PHP en el back-end, y con Angular, React y Jquey en el front-end
Artículos relacionados
Articulo 1
Una descripción etc
Otro Atículo
Nuevo contenido de NOVIEMBRe

Comentarios

Dot-comma #2
03:40 04/04/2024
Primero felicidades por el comentario
Brian #1
03:43 04/04/2024
Buen comentario dot
Brian #1
03:44 04/04/2024
segundo hilo de comentarios
Dot-comma #2
03:44 04/04/2024
Tercer hilo de comentario
Brian #1
03:44 04/04/2024
tercerillo