Nginx如何配置SSL证书实现Https访问

发布时间 - 2023-05-12 00:00:00    点击率:

背景

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


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

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

关于ssl证书

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

ssl证书分为大致分为三种,域名级(dv)、企业级(ov)、增强级(ev),安全性以及价格依次增加。根据自己的需求进行选择,个人使用可以使用dv,便宜;企业用的话一般使用ov,特殊情况下使用ev。

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  # 架构  # xml  # 接口  # windows  # http  # https  # linux  # 配置文件  # 您的  # 是在  # 准备好了  # 自己的  # 的是  # 端口号  # 是一个  # 在网上  # 就会 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何为API生成Swagger或OpenAPI文档  简单实现Android文件上传  高端网站建设与定制开发一站式解决方案 中企动力  手机软键盘弹出时影响布局的解决方法  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  IOS倒计时设置UIButton标题title的抖动问题  Android okhttputils现在进度显示实例代码  如何挑选最适合建站的高性能VPS主机?  如何在搬瓦工VPS快速搭建网站?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何制作一个表白网站视频,关于勇敢表白的小标题?  三星、SK海力士获美批准:可向中国出口芯片制造设备  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Laravel Fortify是什么,和Jetstream有什么关系  Laravel怎么使用Intervention Image库处理图片上传和缩放  网站优化排名时,需要考虑哪些问题呢?  高性价比服务器租赁——企业级配置与24小时运维服务  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Bootstrap整体框架之CSS12栅格系统  Laravel如何使用Eloquent进行子查询  Laravel如何使用Collections进行数据处理?(实用方法示例)  大连 网站制作,大连天途有线官网?  如何挑选优质建站一级代理提升网站排名?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何在腾讯云服务器快速搭建个人网站?  如何在万网利用已有域名快速建站?  免费视频制作网站,更新又快又好的免费电影网站?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel如何与Pusher实现实时通信?(WebSocket示例)  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Java遍历集合的三种方式  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Laravel如何实现文件上传和存储?(本地与S3配置)  想要更高端的建设网站,这些原则一定要坚持!  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  进行网站优化必须要坚持的四大原则  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel如何自定义错误页面(404, 500)?(代码示例)  详解jQuery停止动画——stop()方法的使用  如何快速搭建虚拟主机网站?新手必看指南  微信小程序 require机制详解及实例代码  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】