首页 > 其他分享 >配置Https访问

配置Https访问

时间:2023-12-28 11:35:27浏览次数:42  
标签:https tomcat ssl 配置 访问 Tomcat Https localhost

背景:

  因为https工作工程中使用很多次了,今天给国产机上的tomcat进行部署的时候,发现一个报错,提示配置的协议无效,故记录下处理方法,也记录下整个https的配置过程。

报错内容:

 

这个问题其实在window环境上部署的时候也出现过,windows环境上的解决方式是添加一个本地库tcnative-1.dll文件即可,文末获取,但是在Linux环境中,对应的文件不是则是.so文件,本文将讲述整个获取方式,以及windows上面配置的方式。

生成证书的方式此处不进行讲述,采用的是openssl进行生成证书的操作。

tcnative-1.dll下载:tcnative-1.dll

windows方式:

A)tomcat配置启用https。

配置tomcat/conf/server.xml,注释下图红框原有的访问方式,启用下图蓝框配置https访问的配置。(注意修改服务器证书和密钥的位置)

 注意:SSLCertificateFile后面配置的路径为localhost.crt文件的实际路径,SSLCertificateKeyFile后面配置的路径为localhost.key文件的实际路径

<Connector
    port="9090"
    protocol="org.apache.coyote.http11.Http11AprProtocol"
    maxThreads="200"
    scheme="https" secure="true" SSLEnabled="true"
    SSLCertificateFile="E://localhost.crt"
    SSLCertificateKeyFile="E://localhost.key"
    SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
/>

 

B)Nginx配置启用https

在nginx/conf/nginx.conf中配置如下,即可启用https访问

 

server {
listen 443 ssl;
server_name 127.0.0.1;
ssl_certificate localhost.crt;
ssl_certificate_key localhost.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_dhparam dhparam.pem;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

 

Linux配置:

linux使用nginx配置的话基本上是和windows是一样的配置,不需要单独处理什么,但是当使用tomcat的时候,配置一样的情况下就会出现如开始图片中的错误:无法解析

Http11AprProtocol协议的情况,参考网上说的意思:如下图:

 此种方式的具体做法如下记录:

1.安装APR和OpenSSL:可以使用下面命令进行安装
yum install apr-devel openssl-devel

2.安装Tomcat-native:Tomcat-native的安装文件已经存在于Tomcat中,位于$CATALINA_HOME/bin的文件tomcat-native.tar.gz。你可以使用以下命令来解压并安装:
tar xzcf tomcat-native.tar.gz
cd tomcat-native-1.2.36-src/native
./configure
make && make install

eg:如果./configure报错,可执行
./configure --with-apr=/usr/bin/apr-1-config 之后再执行下面的命令

安装完成后,会看到提示,标识已经安装到/usr/local/apr/lib中。

3.配置Tomcat的setenv.sh文件:切换到$CATALINA_HOME/bin目录下,编辑setenv.sh文件。在文件中添加以下行:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_LIBRARY_PATH

如果你在Tomcat的bin目录下找不到setenv.sh文件,你可以手动创建一个。setenv.sh文件是用于设置Tomcat的环境变量,包括JVM选项、Tomcat选项等。
tomcat-nativa文件下载:tomcat-native.tar.gz

此处说明几个经常遇到的问题:

1、地方上服务器没有配置DNS,可能会造成https访问无效。

解决办法:提供证书的时候,需要配置DNS。

 

2.双协议配置:

<Connector port="9901" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxHttpHeaderSize="8192"
               URIEncoding="UTF-8" />
<Connector
        port="9001"
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        maxThreads="200"
        scheme="https" secure="true" SSLEnabled="true"
        SSLCertificateFile="d://https//localhost.crt"
        SSLCertificateKeyFile="d://https//localhost.key"
        SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
 />

3.发现某些请求中因为一些特殊符号无法访问的问题

原因:tomcat版本高了,更加遵守规范,不再解析特殊字符

解决方法:可以在Connector配置中加上relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"

 <Connector
        port="9001"
        relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        maxThreads="200"
        scheme="https" secure="true" SSLEnabled="true"
        SSLCertificateFile="d://https//localhost.crt"
        SSLCertificateKeyFile="d://https//localhost.key"
        SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
        />

4.ngnix1.11配置的内容

listen   8035 ssl;
server_name  localhost;

ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM+LOW:+SSLv2:+EXP;
ssl_certificate E:/0-bdcdj6.1-biaozhun/httpcer/localhost.crt;
ssl_certificate_key E:/0-bdcdj6.1-biaozhun/httpcer/localhost.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

 

标签:https,tomcat,ssl,配置,访问,Tomcat,Https,localhost
From: https://www.cnblogs.com/ammyblog/p/17930489.html

相关文章

  • 【SpringBoot快速入门】(2)SpringBoot的配置文件与配置方式详细讲解
    之前我们已经学习的Spring、SpringMVC、Mabatis、Maven,详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例,上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动,从这一节开始,我们开始学习SpringBoot配置文件。接下来,我们逐步开始学习,本教程所有示例均基于......
  • 【Spring教程31】SSM框架整合实战:从零开始学习SSM整合配置,如何编写Mybatis SpringMVC
    目录1流程分析2整合配置2.1步骤1:创建Maven的web项目2.2步骤2:添加依赖2.3步骤3:创建项目包结构2.4步骤4:创建SpringConfig配置类2.5步骤5:创建JdbcConfig配置类2.6步骤6:创建MybatisConfig配置类2.7步骤7:创建jdbc.properties2.8步骤8:创建SpringMVC配置类2.9步骤9:创......
  • Apache静态网站权限配置
    <VirtualHost*:80>DocumentRoot/var/www/htmlErrorLog${APACHE_LOG_DIR}/error.logCustomLog${APACHE_LOG_DIR}/access.logcombined<Directory/>AllowOverrideAllRequireallgranted</Directory></......
  • 【Kafka-Eagle】EFAK告警配置与实践
    Kafka-Eagle是一个开源的Kafka集群监控与告警系统,可以帮助用户实现对Kafka集群的实时监控、性能指标收集以及异常告警等功能。下面是关于Kafka-Eagle的告警配置和实践的一般步骤:安装和配置Kafka-Eagle:下载最新版本的Kafka-Eagle安装包,并解压到一个合适的目录中。进入Kafka-Eagle的......
  • 关于CH32V003复位引脚PD7作为GPIO使用配置说明
    关于CH32V003复位引脚PD7作为GPIO使用配置说明具有两种配置方式:1、直接通过操作用户字进行配置,如下图,注意要FLASH解锁;FLASH_Unlock();FLASH_UserOptionByteConfig(OB_IWDG_SW,OB_STOP_NoRST,OB_STDBY_NoRST,OB_RST_NoEN,OB_PowerON_Start_Mode_BOOT);FLASH_Lock......
  • redis主从配置
    先学一个高端linux指令:catredis.conf|grep-v"^#"|grep-v"^$">msconf/redis-master.conf-v反向查找  "^#"以#开头的行   "^$"空行  将redis.conf去掉空行和以#开头的行,写入到msconf文件夹的redis-master.conf文件中 1、master-6380.conf配置文件主要......
  • pnpm安装与配置
    目录安装配置使用在powershell中使用报错pnpm避免了幽灵依赖的问题,且减少了磁盘占用,pnpm使用了共享的存储策略,来存储所有项目的所有包版本以及每个项目所需的符号链接。这意味着,如果多个项目依赖于同一个包的同一个版本,pnpm只会在磁盘上存储一次。幽灵依赖指的是在项目中虽......
  • 12.27生成随机数,循环间断,数组元素访问,
     无限循环即在限制循环次数的位置为空  数组中数据建议和数组类型保持一致  0位是第一个元素 ......
  • DHCP服务器的配置
    DHCP的配置过程服务器:WindowServer2016、客户端:Windows101、添加一块儿新网卡,让服务器和客户端保持同一网卡,并把客户机网卡设置为自动获取ip      ......
  • ipset及iptables屏蔽海外IP访问应用实例
    1、ipset相关操作安装(一般在centos6以上系统中默认已安装)yuminstallipset-y创建ipset集合ipsetcreatecn_iphash:nethashsize4096maxelem1000000cn_ip:集合名称hash:net集合类型名hashsize:指定了创建集合时初始大小maxelem:指定了集合最大存储记录的数量添加......