Ghid pas cu pas pentru activarea modului corect HTTPS sau SSL pe Apache Tomcat Server - Port 8443
Publicat: 2021-04-03Au trecut aproape 12 ani în care am început să folosesc Apache Tomcat. Cred că atunci când am făcut primul meu proiect, era pe Tomcat versiunea 1.x
Acum este deja pe versiunea 8.0
. În mare parte, am fost în contact cu Tomcat Server în viața mea de zi cu zi, pur și simplu nu pot trăi fără el.
Pe Crunchify am publicat deja aproape 40 de articole despre Apache Tomcat
. În majoritatea tutorialului, am rulat serverul pe portul 8080, care este portul implicit configurat în fișierul server.xml
.
În acest tutorial vom trece peste toți pașii în detalii despre how to enable HTTPS/SSL on Apache Tomcat Server
.
Să începem:
Pasul 1. Creați un depozit de chei
keytool
: vom genera cheia securizată folosind comanda keytool
– care este instrument de gestionare a cheilor și a certificatelor.
Comanda:
1 2 3 4 |
bash - 3.2 $ pwd / Users / Shared bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore |
Fișierul va fi creat în folderul /Users/Shared
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
bash - 3.2 $ keytool - genkey - alias crunchify - keyalg RSA - keystore / Users / Shared / crunchify . keystore Enter keystore password : Re - enter new password : What is your first and last name ? [ Unknown ] : App Shah What is the name of your organizational unit ? [ Unknown ] : Crunchify , LLC What is the name of your organization ? [ Unknown ] : Crunchify What is the name of your City or Locality ? [ Unknown ] : New York City What is the name of your State or Province ? [ Unknown ] : NY What is the two - letter country code for this unit ? [ Unknown ] : US Is CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US correct ? [ no ] : yes Generating 2 , 048 bit RSA key pair and self - signed certificate ( SHA256withRSA ) with a validity of 90 days for : CN = App Shah , OU = "Crunchify, LLC" , O = Crunchify , L = New York City , ST = NY , C = US |
Folosesc Mac OS X, așa că înlocuiți calea în consecință dacă sunteți pe Windows. Am folosit parola 123456
.
Pasul 2. Creați cerere de semnare a certificatului autosemnat
1 2 |
bash - 3.2 $ keytool - certreq - keyalg RSA - alias crunchify - file crunchify . csr - keystore crunchify . keystore Enter keystore password : |
Introduceți parola: 123456
Pasul 3. Să verificăm mai întâi că tomcat rulează pe portul 8080 prin HTTP.
Start
serverul Tomcat folosind comanda: < startup.sh
>/bin/starup.sh .
Asigurați-vă că vă aflați în locația corectă a căii pentru tomcat.
1 2 3 4 5 6 7 8 9 10 11 |
bash - 3.2 # pwd / Users / Shared / apache - tomcat - 9.0.30 / bin bash - 3.2 $ . / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
Apăsați adresa URL: http://localhost:8080
pentru a vă asigura că serverul funcționează.
Pasul-4. Acum verificați instanța Tomcat pe portul 8443 prin HTTPS.
- Acum verificați portul 8443 (URL HTTPS/SSL).
- Adresa URL:
https://localhost:8443
- Ar trebui să vedeți un mesaj de eroare. Pagina nu ar trebui să se încarce deloc.
Pasul-5. Actualizați fișierul /conf/server.xml
Deoarece am generat depozitul de chei și cererea de semnare a certificatelor mai sus, trebuie să îi spunem lui Tomcat să o folosească.
- Deschideți fișierul
server.xml
care se află în<tomcat_home>/conf/
și modificați setările. - În cazul nostru, este folderul
/Users/Shared/apache-tomcat-9.0.30/conf
.
Adăugați secțiunea de mai jos direct în fișierul server.xml:

1 2 3 4 5 |
< Connector port = "8443" protocol = "HTTP/1.1" SSLEnabled = "true" maxThreads = "150" scheme = "https" secure = "true" keystoreFile = "/Users/Shared/crunchify.keystore" keystorePass = "123456" clientAuth = "false" sslProtocol = "TLS" sslVerifyClient = "optional" sslEnabledProtocols = "TLSv1.2,TLSv1.1,SSLv2Hello" / > |
- Aici parola este
123456
pe care am folosit-o laStep-1
. - Protocol: HTTP/1.1
Salvează fișierul. În continuare ne vom opri și porni Tomcat Server.
Pasul-6. Opriți și porniți Apache Tomcat.
- bash-3.2$ /Utilizatori/Shared/apache-tomcat-9.0.30/bin/shutdown.sh
- bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/startup.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / shutdown . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar NOTE : Picked up JDK_JAVA_OPTIONS : -- add - opens = java . base / java . lang = ALL - UNNAMED -- add - opens = java . base / java . io = ALL - UNNAMED -- add - opens = java . rmi / sun . rmi . transport = ALL - UNNAMED bash - 3.2 $ / Users / Shared / apache - tomcat - 9.0.30 / bin / startup . sh Using CATALINA_BASE : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_HOME : / Users / Shared / apache - tomcat - 9.0.30 Using CATALINA_TMPDIR : / Users / Shared / apache - tomcat - 9.0.30 / temp Using JRE_HOME : / Library / Java / JavaVirtualMachines / jdk - 13.0.1.jdk / Contents / Home Using CLASSPATH : / Users / Shared / apache - tomcat - 9.0.30 / bin / bootstrap . jar : / Users / Shared / apache - tomcat - 9.0.30 / bin / tomcat - juli . jar Tomcat started . |
Pasul-7. Verificați URL-ul și certificarea HTTPS: https://localhost:8443
Acum apăsați din nou URL-ul securizat HTTPS pentru a verifica pagina dvs. încărcată cu succes.
Crom:
- În mod implicit,
Chrome Blocks all insecure HTTPS
. - Activați
Chrome flag
pentru a încărca certificate nevalide pentru resursele încărcate de la localhost
- Accesați Chrome
- Deschide Tab
- tip:
chrome://flags/#allow-insecure-localhost
- Activați semnalizarea din meniul drop-down
- Relansați Chrome
Safari și Mozilla Firefox:
-
Accept invalid certificate error
și vizitați site-ul.
Ar trebui să vedeți pagina Apache Tomcat care se încarcă prin HTTPS pe portul 8443
Sunteti pregatiti. Ai observat red padlock
? Nu-ți face griji. Nu am achiziționat certificat SSL de la Verisign sau Comodo.
În mediul de producție este posibil să nu vedeți acel semn de cruce roșie.
Faceți clic pe certificat în browser și certificatul nostru implicit autosemnat ar trebui să fie
valid for 90
zile.
Punct bonus:
Cum să vă verificați cert content
folosind instrumentul de keytool
?
1 |
bash - 3.2 # keytool -list -keystore /Users/<username>/crunchify.keystore |
Rezultat:
1 2 3 4 5 6 7 8 9 10 11 12 |
bash - 3.2 $ keytool - list - keystore / Users / Shared / crunchify . keystore Enter keystore password : Keystore type : PKCS12 Keystore provider : SUN Your keystore contains 1 entry crunchify , Apr 24 , 2020 , PrivateKeyEntry , Certificate fingerprint ( SHA - 256 ) : 9D : 26 : 77 : E0 : E8 : 79 : 5B : 46 : 57 : 64 : 04 : 95 : B8 : 22 : 9C : E2 : 9F : A4 : 82 : CB : 01 : B5 : 80 : 62 : 75 : 90 : 48 : 27 : 5F : 60 : CB : C8 bash - 3.2 $ |