在 Apache Tomcat 服务器上启用 HTTPS 或 SSL 正确方式的分步指南 – 端口 8443

我开始使用Apache Tomcat已经快 12 年了。我相信当我做我的一年级项目时,它是在 Tomcat 版本上1.x。现在它已经在 version 上8.0。在我的日常工作生活中,我大部分时间都在与 Tomcat Server 保持联系,没有它就活不下去。

在 Crunchify 上,我们已经发表了近 40 篇关于Apache Tomcat. 在大部分教程中,我在端口 8080 上运行服务器,这是server.xml文件中配置的默认端口。

在本教程中,我们将详细介绍how to enable HTTPS/SSL on Apache Tomcat Server.

让我们开始吧:

步骤1。创建密钥库

keytool:我们将使用keytool命令生成安全密钥——这是密钥和证书管理工具。

命令:

bash-3.2$ pwd
/Users/Shared
bash-3.2$ keytool -genkey -alias crunchify -keyalg RSA -keystore /Users/Shared/crunchify.keystore


文件将在文件夹下创建/Users/Shared

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


我正在使用Mac OS X,因此如果您在 Windows 上,请相应地替换您的路径。我用过密码123456

 

第2步。创建自签名证书签名请求

bash-3.2$ keytool -certreq -keyalg RSA -alias crunchify -file crunchify.csr -keystore crunchify.keystore 
Enter keystore password: 


输入密码:123456

步骤 3。让我们首先检查一下 Tomcat 是否通过 HTTP 在端口 8080 上运行。

Start使用命令的 tomcat 服务器: <tomcat_home>/bin/ startup.sh

确保您位于正确的 Tomcat 路径位置。

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.


点击 URL:http://localhost:8080以确保服务器已启动并正在运行。

第4步。现在通过 HTTPS 检查端口 8443 上的 tomcat 实例。

  • 现在检查端口 8443(HTTPS/SSL URL)。
  • 点击网址:https://localhost:8443
  • 您应该会看到错误消息。页面根本不应该加载。

步骤 5。更新 /conf/server.xml 文件

由于我们在上面生成了密钥库和证书签名请求,我们需要告诉 tomcat 使用它。

  • 打开server.xml位于<tomcat_home>/conf/文件夹中的文件并修改设置。
  • 在我们的例子中,它是/Users/Shared/apache-tomcat-9.0.30/conf文件夹。

将以下部分直接添加到 server.xml 文件中:

    <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"/>

  • 这里的密码是123456我在Step-1.
  • 协议:HTTP/1.1

 

保存存档。接下来我们将停止并启动 Tomcat 服务器。

步骤 6。停止和启动 Apache Tomcat。

  • bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/shutdown.sh
  • bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/startup.sh

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.

步骤 7。检查 HTTPS url 和认证:https://localhost:8443

现在再次点击 HTTPS 安全 URL 以检查您的页面是否已成功加载。

铬合金:

  • 默认情况下Chrome Blocks all insecure HTTPS从加载站点。
  • 启用Chrome flag为从 localhost 加载的资源加载无效证书
  1. 转到 Chrome
  2. 打开标签
  3. 类型:chrome://flags/#allow-insecure-localhost
  4. 从下拉列表中启用标志
  5. 重新启动 Chrome

 

Safari 和 Mozilla 火狐:

  • Accept invalid certificate error并访问网站。

您应该看到 Apache Tomcat 页面通过 HTTPS 在端口 8443 上加载🙂

 

你都准备好了。你注意到了red padlock吗?不用担心。我们没有从 Verisign 或 Comodo 购买 SSL 证书。

在生产环境中,您可能看不到那个红十字标志。

点击浏览器中的证书,我们默认的自签名证书应该是valid for 90天数。

 

奖励点:

如何检查您的cert content使用命令keytool

bash-3.2# keytool -list -keystore /Users/<username>/crunchify.keystore

结果:

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$ 


加入讨论

如果您喜欢这篇文章,请在社交媒体上分享。对文章仍有任何疑问,请给我们留言。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值