千家信息网

详解Nginx配置SSL证书实现Https访问

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,背景由于项目需求,安全起见,需要将之前的http接口访问变成https访问,所以需要配置SSL证书。项目的架构是这样的:基本架构是硬负载(ReadWhere)+ 软负载(Nginx)+ Tomcat集
千家信息网最后更新 2025年12月03日详解Nginx配置SSL证书实现Https访问

背景

由于项目需求,安全起见,需要将之前的http接口访问变成https访问,所以需要配置SSL证书。项目的架构是这样的:


基本架构是硬负载(ReadWhere)+ 软负载(Nginx)+ Tomcat集群,现在的问题是SSl证书要配置在哪里,直接配置在硬负载上?还是分别配置在Nginx和Tomcat上?还是其他的配置方法呢?

首先在硬负载上配置放弃了,然后通过在网上查找资料,发现可以只在Nginx上配置证书,就是说Nginx接入使用Https,而Nginx与Tomcat之间使用Http进行衔接,这样就游了一个整体思路。

关于SSL证书

关于SSL证书这里简单进行介绍,也是因为项目需要,进行了简单的了解。

SSL证书分为大致分为三种,域名级(DV)、企业级(OV)、增强级(EV),安全性以及价格依次增加。根据自己的需求进行选择,个人使用可以使用DV,便宜;企业用的话一般使用OV,特殊情况下使用EV。下面是几家云服务商的OV SSL证书的价格对比,Symantec和GeoTrust被选用的比较多,都属于赛门铁克旗下。

云服务商证书品牌价格
阿里云Symantec4000/年
阿里云GeoTrust2062.4/年
腾讯云Symantec5000/年
腾讯云GeoTrust2850/年
西部数码Symantec3880/年
西部数码GeoTrust2137/年

SSL证书配置

由于Nginx对于SSL证书配置的支持才使得这种实现方式成为了可能,不得不感叹Nginx的强大。

证书准备

Nginx配置需要.pem/.crt证书 + .key秘钥,如果您现在拥有的是其他形式的证书,请按照相关说明转化成要求的证书类型,否则是不能完成证书的配置的。一般购买商家都会有相应的转换工具。

准备好了之后,将证书和秘钥放到Nginx的conf目录下(也就是跟配置文件nginx.conf在同一个目录),这里特别需要注意:

  1. 如果是在linux系统下配置,这就算准备好了;
  2. 如果是在windows系统下,需要将.key秘钥文件中的密码去除,否则就会导致配置之后Nginx启动不起来,这里是一个坑,本人就卡在了这里,具体处理方法也很简单,在网上下载openssl的windows版本,然后将cmd切换到bin目录下,执行openssl rsa -in server.key -out server2.key,生成的server2.key就是配置需要的秘钥文件,但是需要将文件名改成server.key。

修改Nginx配置文件

以下是我nginx.conf配置文件的局部,端口着迷没有使用默认的443,而是改成了8185,根据您的需要进行修改即可,其他配置基本上按照下面就没问题。

server {    listen    8185;    server_name localhost;     ssl         on;     ssl_certificate   server.pem;     ssl_certificate_key server.key;     ssl_session_timeout 5m;    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    ssl_ciphers HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;     ssl_prefer_server_ciphers  on;    location / {      proxy_set_header Host $host:$server_port;       proxy_set_header X-Real-IP $remote_addr;       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;       proxy_set_header X-Forwarded-Proto $scheme;      proxy_connect_timeout  5;      proxy_send_timeout   5;      proxy_read_timeout   5;       proxy_pass http://qlddm_server;    }

修改Tomcat配置文件

虽然不需要在Tomcat配置证书,但是仍然需要修改一下Tomcat的配置Server.xml配置文件,具体包含两个地方:

需要将redirectPort和proxyPort都修改为您的Nginx监听端口号。

需要增加以上的Value标签,注意httpsServerPort也需要修改为Nginx监听端口号。

写在最后

至此,关于SSL的配置基本上就完成了,启动Nginx以及Tomcat容器之后,不出意外应该就可以通过Https正常访问了。另外想说的是,由于本人工作场景是一个硬负载均衡两台服务器,所以相同的配置需要在两台服务器上分别做一次。本文仅供参考,如对您有所帮助,实乃万幸,也希望大家多多支持。

配置 证书 文件 服务 价格 目录 项目 准备 安全 企业 口号 就是 数码 方法 是在 服务商 服务器 架构 系统 西部 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 惠普服务器raid5热备配置 车载网络技术凌永成电子版 联想服务器黄色状态灯亮起 数据库设计过程中哪三个步骤 体现两者之间关系用数据库写 广东企业软件开发批发价 厦门东塔网络安全学院免费试学 江西数据库安全箱定制价格 肖战为家乡宣传网络安全 360网络安全书籍 安全模式下数据库无法启动 2019年国庆网络安全 毕节计算机网络技术职业学校 东营市网络安全管控 前端显示数据库数据 计算机网络技术专业行情 杭州正规软件开发要多少钱 山西乃心虎网络技术有限公司 软件开发中的需求分析 计算机网络安全原理心得体会 惠普连接管理服务器 企业安全风险数据库怎么做 洛阳网络安全科技馆 什么软件开发汉字 网络安全法解读解读 如何打开smb服务器 服务器怎么格式化 完美连接服务器次数过多禁止进入 软件开发工程师哪里学好 网络技术 教学模式
0