当前位置: 首页 > news >正文

群晖NAS如何在内网部署HTTPS服务让浏览器信任证书

前言

最近在折腾内部部署Web服务。通过Vue实现一个H5的内部的管理服务。但在实际部署过程中由于种种原因,必须部署成Https服务。但在部署成Https服务后,由于没有HTTPS证书,每次进入页面都会被浏览器拦截。使用起来非常不便。于是开始各种Google折腾,终于实现了在导入证书的基础上部署HTTPS服务。接下来,和大家一起分享下整个部署过程。

前置条件

由于HTTPS证书必须和域名关联,所以我们必须有一个公网域名。具体大家就根据在各大域名运营商购买即可。
PS:公网域名仅仅是用于申请HTTPS证书。并不是说咱们的服务要部署到公网。

大致流程

  1. 购买公网域名。
  2. 在域名服务提供商申请免费的HTTPS证书。自己玩玩就没有必要买商业证书了。
  3. 在群晖上部署服务,通过WebStation部署。通过域名对外提供服务。
  4. 通过群晖的DNS将域名解析到群晖服务上。这样内网访问域名的时候才能够被解析
  5. 将群晖的DNS配置到路由器,作为其默认路由。实现内网域名解析。
  6. 将HTTPS域名证书导入到群晖证书管理中。

详细流程

域名准备

首先需要有个公网域名。如果没有,则去域名服务上购买吧。随便买一个普通的也很便宜。
因为HTTPS证书需要和域名绑定,且只能和公网域名绑定。所以公网域名是必须的。
这里咱们假设公网域名为:abc.com。后续都用这个域名讲解,方便大家理解。

HTTPS证书申请

拥有了公网域名之后。则需要到域名服务商申请相应的HTTPS证书。前面也说过了,证书就使用免费的得了。当然如果有商用证书肯定更好。因为免费证书都只有1年的有效期。过期之后需要重新申请证书,并重新导入群晖。
不同的域名服务商申请免费证书的方式不太相同,但大概都是在证书购买的位置去申请。具体大家可以根据自己不同的服务商(百度、阿里、腾讯等),自己搜索下如何免费或证书即可。
PS:在申请证书的时候,咱们需要基于咱们购买域名的子域名去申请,如果直接用二级域名申请证书,那后续域名就不能用作其他用处。所以这里我们使用子域名qunhui.abc.com去申请。
证书申请成功之后,将证书下载下来,待后续使用。

服务部署

在群晖上部署服务时,咱们有两种方式。如果是纯前端资源咱通过WebStation使用apache部署即可。如果是后端服务则需要通过tomcat等容器部署。
由于本文重点讲解HTTPS访问这一块,所以不会具体讲解如何部署。具体部署方式当家搜索下即可。

使用WebStation部署前端资源

通过WebStation部署的时候,咱们直接选择通过name对外提供服务。此处的name咱们填写二级域名qunhui.abc.com即可。
注意协议一定要开启HTTPS(至少要包含有HTTPS)。
在这里插入图片描述

使用Tomcat等容器部署服务

通过tomcat等容器部署都只能对外基于ip和端口提供服务。但我们需要通过域名对外提供服务。所以部署完成之后,我们需要在群晖的反向代理中进行配置。将域名映射到容器对应的端口上。具体操作如下:
图中来源的域名填写咱们的qunhui.abc.com(图中写错了,难得重新截图了)。协议一定要选择HTTPS。
目的地中的协议根据咱们后端tomcat的协议选择即可。通常都是HTTP。主机名则对应tomcat的主机名IP和端口。
在这里插入图片描述

在DNS配置解析

部署和域名访问都配置完成后,我们需要在群晖的DNS上配置上对应域名解析规则。即实现通过该DNS解析,当我们访问域名的时候,能解析到咱们群晖的IP地址上。具体配置如下:
PS:在配置群晖部署的DNS时,记得配置默认的DNS地址,即群晖DNS解析不了的域名就需要走该默认DNS进行解析。这个地址通常是运营商默认提供的地址(查看路由器上的配置即可),或者使用公用的DNS:114.114.114.114。
默认配置如下图:其中转发器中就是咱们路由上默认的DNS。
在这里插入图片描述
下图是配置qunhui.abc.com域名解析的方式。在DNS的区域中新增一个源记录做如下配置即可。其中IP就是NAS的IP。
在这里插入图片描述

修改路由器的DNS

咱们配置完成DNS解析后,接下来就需要解决在访问的时候网络如何找到我们群晖上部署的DNS的问题。我们只需要将路由器中的DNS修改为群晖的DNS即可。通常路由器配置界面如下。直接修改为群晖的IP地址即可。
如下图在路由的LAN设置下的DHCP服务中修改。将原来的DNS地址(已经配置到群晖DNS Server的转发中了)修改为咱们的群晖地址即可(图中的首选DNS服务器)。
在这里插入图片描述

HTTPS证书导入

所有都完成后,我们访问域名应该就能正常访问咱们部署的服务。但是还是会提示HTTPS证书不安全。因为咱们上面的证书还没有导入到群晖呢。接下来我们需要将商家下载的证书导入到群晖的证书管理中。
导入完成后,需要选择哪些服务需要使用咱们的新证书。因为默认还是使用群晖的自签证书。
完成之后,咱们再次访问服务将不会再提示证书问题。
如下图,选择点击新增然后,弹出框选择新增证书,然后选择导入证书会进入如下界面。
将自己上面下载的证书解压出来导入即可。其中私钥是以key结尾的文件,证书是为cert结尾的文件。中间证书可以不填。
在这里插入图片描述
证书导入正常之后,咱们在点击选择刚刚导入的证书,然后选择设置按钮会弹出如下界面。
在界面中的服务一列选择咱们之前的配置的业务域名(即qunhui.abc.com)。右边证书列选择咱们刚刚导入的证书即可。
在这里插入图片描述
到此咱们就完成了HTTPS在内网的部署。此时当你在内网访问https://qunhui.abc.com下的服务时,浏览器就会显示一把锁,标识证书有效。从此再也不会弹出证书不合法的页面了。
在这里插入图片描述

后续

最后咱们还需要注意如下几点:

  1. 免费证书只有一年有效期,一年到期后需要重新申请申请并导入。
  2. 咱们的域名下所有的子域名都可以通过这种方式在内网提供HTTPS服务。
  3. 在群晖DNS上一定要记得配置啊。。。。。

惯例

如果你喜欢本文或觉得本文对你有所帮助,欢迎一键三连支持,非常感谢。
如果你对本文有任何疑问或者高见,欢迎添加公众号lifeofcoder共同交流探讨(添加公众号可以获得楼主最新博文推送以及”Java高级架构“上10G视频和图文资料哦)。

相关文章:

群晖NAS如何在内网部署HTTPS服务让浏览器信任证书

前言 最近在折腾内部部署Web服务。通过Vue实现一个H5的内部的管理服务。但在实际部署过程中由于种种原因,必须部署成Https服务。但在部署成Https服务后,由于没有HTTPS证书,每次进入页面都会被浏览器拦截。使用起来非常不便。于是开始各种Goo…...

crAPI靶场学习记录

靶场搭建 [靶场下载地址](我fork了一份) docker安装,笔者是用的wsldocker. [lab0:**初始账户 **] 注册一个账户,邮箱为[APIqq.com],密码为Admin123 登陆后访问对应IP的8025端口,接收邮件获取车辆信息。 [lab1:**访问其它用户车…...

知识图谱实战应用28-基于py2neo的ICD-11疾病分类的知识图谱的查询与问答实战应用

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用28-基于py2neo的ICD-11疾病分类的知识图谱的查询与问答实战应用。使用基于py2neo的ICD-11疾病分类知识图谱,我们能够像探索一座生物医学宇宙般,穿梭在各种疾病之间。这个神奇的图谱可以帮助我们揭示各种疾病之间复杂而…...

20.Xaml GroupBox控件 ---->带标题的内容控件

1.运行效果 2.运行源码 a.Xaml源码 <Window x:Class="testView.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mic…...

基于CycleGAN的山水风格画迁移

基于CycleGAN的山水风格画迁移 1、简介 1.1 研究背景及意义 绘画是人类重要的一种艺术形式&#xff0c;其中中国的山水画源远流长&#xff0c;具有丰富的美学内涵&#xff0c;沉淀着中国人的情思。游山玩水的大陆文化意识&#xff0c;以山为德、水为性的内在修为意识&#x…...

​@Cacheable 注解​

1. 功能说明 Cacheable 注解在方法上&#xff0c;表示该方法的返回结果是可以缓存的。也就是说&#xff0c;该方法的返回结果会放在缓存中&#xff0c;以便于以后使用相同的参数调用该方法时&#xff0c;会返回缓存中的值&#xff0c;而不会实际执行该方法。 注意&#xff0c;这…...

vue3+ts项目打包后的本地访问

注意&#xff1a;打包之后不可直接点击html访问&#xff0c;需要给项目安装本地服务&#xff01; 1、安装servenpm i -g serve 2、打包项目npm run build 生成dist文件夹 3、本地访问serve dist 运行service dist之后的控制台 可复制下方的地址运行打包后的项目&#xff0c;运行…...

探索程序员需要掌握的算法?

文章目录 一&#xff1a;引言二&#xff1a;常见算法介绍三&#xff1a;重点算法总结 &#x1f389;欢迎来到数据结构学习专栏~探索程序员需要掌握的算法&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系列文章…...

性能测试 —— Jmeter定时器

固定定时器 如果你需要让每个线程在请求之前按相同的指定时间停顿&#xff0c;那么可以使用这个定时器&#xff1b;需要注意的是&#xff0c;固定定时器的延时不会计入单个sampler的响应时间&#xff0c;但会计入事务控制器的时间 1、使用固定定时器位置在http请求中&#xf…...

mp4视频太大怎么压缩?几种常见压缩方法

mp4视频太大怎么压缩&#xff1f;科技的飞速发展使得视频成为人们生活中不可或缺的一部分。然而&#xff0c;随着视频质量的不断提高&#xff0c;视频文件的大小也与日俱增&#xff0c;给我们的存储和传输带来了巨大的挑战和困扰。特别是MP4格式的视频&#xff0c;由于其出色的…...

论文复制ChatGPT按钮被发表,撤回后再曝多个类似案例;Midjourney 生成大师级的人像

&#x1f989; AI新闻 &#x1f680; 论文复制ChatGPT按钮被发表&#xff0c;撤回后再曝多个类似案例 摘要&#xff1a;一篇物理论文复制了ChatGPT按钮内容&#xff0c;经过两个月同行评审并在杂志上发表。这一现象被知名打假人发现后&#xff0c;发表商决定撤回该论文。此外…...

Python自动化测试 史上最全的进阶教程

Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 随着时代的变革&#xff0c;也许在未来测试这个职位的需求会越来越少甚至消失&#xff0c;但是每一个组织&#xff0c;每一个客户对软件质量的要求是永远不…...

centos pip失效

在 CentOS 上安装和配置 pip3 可能需要以下步骤&#xff1a; 确保 Python 3 已正确安装&#xff1a;请确保您已经正确地安装了 Python 3。在 CentOS 上&#xff0c;Python 3 可能默认安装在 /usr/bin/python3 路径下。您可以通过运行以下命令来验证 Python 3 是否正确安装&…...

Java——》ThreadLocal

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...

如何做好利益相关方的期望管理?

利益相关方对项目而言非常重要&#xff0c;有效管理利益相关方的期望可以帮助项目团队更好地满足利益相关方的需求&#xff0c;助于建立良好的合作伙伴关系&#xff0c;提高项目的可持续性和成功率。 如果项目团队无法满足利益相关方的需求&#xff0c;可能会引发冲突、争议或其…...

【K8S系列】深入解析k8s网络插件—Canal

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记论点蓝色&#xff1a;用来标记论点 在现代容器化应用程序的世界中…...

从单页面应用角度去解决不跳转页面,也能更改浏览器url地址

正常来说不刷新页面&#xff0c;也能更改浏览器url地址的方法有很多&#xff0c;我们在网上搜的话可以看到有pushState、replaceState、popstate等方法&#xff0c;那还有没有其他方法呢&#xff1f; 答案是有的&#xff01; 最近做一个vue商城项目的时候&#xff0c;用户点击支…...

Linux:keepalived + ipvsadm

介绍 Linux&#xff1a;keepalived 双热备份&#xff08;基础备份web&#xff09;_鲍海超-GNUBHCkalitarro的博客-CSDN博客https://blog.csdn.net/w14768855/article/details/132815057?spm1001.2014.3001.5501 环境 一台 centos7 keepalived ipvsadm &#xff08;主…...

Linux基础命令(示例代码 + 解释)

查看目录下文件 ls [-a -l -h] [路径] -a&#xff08;全部&#xff09; -l&#xff08;细节&#xff09; -h&#xff08;大小&#xff09; ls ls / ls -a ls -l ls -h ls -alh ls -l -h -a ls -lah /切换目录 cd [路径] change di…...

巨人互动|Google企业户Google“自动采纳建议”应该如何使用

在数字化时代&#xff0c;Google已经成为了人们获取信息的主要渠道之一。而在使用Google搜索时&#xff0c;你可能会发现下拉框中自动提供的搜索建议。这些搜索建议是基于用户搜索行为和相关数据进行推测&#xff0c;旨在使用户更快速地找到所需信息。而Google还提供了一项名为…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

Xcode 16 集成 cocoapods 报错

基于 Xcode 16 新建工程项目&#xff0c;集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...

Python环境安装与虚拟环境配置详解

本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南&#xff0c;适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者&#xff0c;都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...