• 在 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命令生成安全密钥——这是密钥和证书管理工具。

    命令:

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


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

    1. bash-3.2$ keytool -genkey -alias crunchify -keyalg RSA -keystore /Users/Shared/crunchify.keystore
    2. Enter keystore password:
    3. Re-enter new password:
    4. What is your first and last name?
    5. [Unknown]: App Shah
    6. What is the name of your organizational unit?
    7. [Unknown]: Crunchify, LLC
    8. What is the name of your organization?
    9. [Unknown]: Crunchify
    10. What is the name of your City or Locality?
    11. [Unknown]: New York City
    12. What is the name of your State or Province?
    13. [Unknown]: NY
    14. What is the two-letter country code for this unit?
    15. [Unknown]: US
    16. Is CN=App Shah, OU="Crunchify, LLC", O=Crunchify, L=New York City, ST=NY, C=US correct?
    17. [no]: yes
    18. Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 90 days
    19. for: CN=App Shah, OU="Crunchify, LLC", O=Crunchify, L=New York City, ST=NY, C=US


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

     

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

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


    输入密码:123456

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

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

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

    1. bash-3.2# pwd
    2. /Users/Shared/apache-tomcat-9.0.30/bin
    3. bash-3.2$ ./startup.sh
    4. Using CATALINA_BASE: /Users/Shared/apache-tomcat-9.0.30
    5. Using CATALINA_HOME: /Users/Shared/apache-tomcat-9.0.30
    6. Using CATALINA_TMPDIR: /Users/Shared/apache-tomcat-9.0.30/temp
    7. Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
    8. Using CLASSPATH: /Users/Shared/apache-tomcat-9.0.30/bin/bootstrap.jar:/Users/Shared/apache-tomcat-9.0.30/bin/tomcat-juli.jar
    9. Tomcat started.


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

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

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

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

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

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

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

    1. <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    2. maxThreads="150" scheme="https" secure="true"
    3. keystoreFile="/Users/Shared/crunchify.keystore" keystorePass="123456"
    4. clientAuth="false" sslProtocol="TLS" sslVerifyClient="optional"
    5. 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

    1. bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/shutdown.sh
    2. Using CATALINA_BASE: /Users/Shared/apache-tomcat-9.0.30
    3. Using CATALINA_HOME: /Users/Shared/apache-tomcat-9.0.30
    4. Using CATALINA_TMPDIR: /Users/Shared/apache-tomcat-9.0.30/temp
    5. Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
    6. Using CLASSPATH: /Users/Shared/apache-tomcat-9.0.30/bin/bootstrap.jar:/Users/Shared/apache-tomcat-9.0.30/bin/tomcat-juli.jar
    7. 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
    8. bash-3.2$ /Users/Shared/apache-tomcat-9.0.30/bin/startup.sh
    9. Using CATALINA_BASE: /Users/Shared/apache-tomcat-9.0.30
    10. Using CATALINA_HOME: /Users/Shared/apache-tomcat-9.0.30
    11. Using CATALINA_TMPDIR: /Users/Shared/apache-tomcat-9.0.30/temp
    12. Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
    13. Using CLASSPATH: /Users/Shared/apache-tomcat-9.0.30/bin/bootstrap.jar:/Users/Shared/apache-tomcat-9.0.30/bin/tomcat-juli.jar
    14. 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//crunchify.keystore
    

    结果:

    1. bash-3.2$ keytool -list -keystore /Users/Shared/crunchify.keystore
    2. Enter keystore password:
    3. Keystore type: PKCS12
    4. Keystore provider: SUN
    5. Your keystore contains 1 entry
    6. crunchify, Apr 24, 2020, PrivateKeyEntry,
    7. 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
    8. bash-3.2$


    加入讨论

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

  • 相关阅读:
    java int类型数据溢出问题 时钟 原码 反码 补码 二进制
    口袋参谋:如何利用“问大家”机制,提高转化?
    VC6 MFC Dialog as apllication 编程
    MAMMOTH: BUILDING MATH GENERALIST MODELS THROUGH HYBRID INSTRUCTION TUNING
    JUC P3 共享模型之无锁同步,CAS,原子类,Unsafe类 基础+代码
    【学习笔记03】node.js搭建一个简易的服务器
    【Redis】数据结构---String
    【第十四篇】- Maven 自动化构建
    关键短语提取的典型方法
    油封有哪些优点?
  • 原文地址:https://blog.csdn.net/allway2/article/details/126568489