群晖NAS如何在内网部署HTTPS服务让浏览器信任证书
前言
最近在折腾内部部署Web服务。通过Vue实现一个H5的内部的管理服务。但在实际部署过程中由于种种原因,必须部署成Https服务。但在部署成Https服务后,由于没有HTTPS证书,每次进入页面都会被浏览器拦截。使用起来非常不便。于是开始各种Google折腾,终于实现了在导入证书的基础上部署HTTPS服务。接下来,和大家一起分享下整个部署过程。
前置条件
由于HTTPS证书必须和域名关联,所以我们必须有一个公网域名。具体大家就根据在各大域名运营商购买即可。
PS:公网域名仅仅是用于申请HTTPS证书。并不是说咱们的服务要部署到公网。
大致流程
- 购买公网域名。
- 在域名服务提供商申请免费的HTTPS证书。自己玩玩就没有必要买商业证书了。
- 在群晖上部署服务,通过WebStation部署。通过域名对外提供服务。
- 通过群晖的DNS将域名解析到群晖服务上。这样内网访问域名的时候才能够被解析
- 将群晖的DNS配置到路由器,作为其默认路由。实现内网域名解析。
- 将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下的服务时,浏览器就会显示一把锁,标识证书有效。从此再也不会弹出证书不合法的页面了。

后续
最后咱们还需要注意如下几点:
- 免费证书只有一年有效期,一年到期后需要重新申请申请并导入。
- 咱们的域名下所有的子域名都可以通过这种方式在内网提供HTTPS服务。
- 在群晖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 研究背景及意义 绘画是人类重要的一种艺术形式,其中中国的山水画源远流长,具有丰富的美学内涵,沉淀着中国人的情思。游山玩水的大陆文化意识,以山为德、水为性的内在修为意识&#x…...
@Cacheable 注解
1. 功能说明 Cacheable 注解在方法上,表示该方法的返回结果是可以缓存的。也就是说,该方法的返回结果会放在缓存中,以便于以后使用相同的参数调用该方法时,会返回缓存中的值,而不会实际执行该方法。 注意,这…...
vue3+ts项目打包后的本地访问
注意:打包之后不可直接点击html访问,需要给项目安装本地服务! 1、安装servenpm i -g serve 2、打包项目npm run build 生成dist文件夹 3、本地访问serve dist 运行service dist之后的控制台 可复制下方的地址运行打包后的项目,运行…...
探索程序员需要掌握的算法?
文章目录 一:引言二:常见算法介绍三:重点算法总结 🎉欢迎来到数据结构学习专栏~探索程序员需要掌握的算法? ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客🎈该系列文章…...
性能测试 —— Jmeter定时器
固定定时器 如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间 1、使用固定定时器位置在http请求中…...
mp4视频太大怎么压缩?几种常见压缩方法
mp4视频太大怎么压缩?科技的飞速发展使得视频成为人们生活中不可或缺的一部分。然而,随着视频质量的不断提高,视频文件的大小也与日俱增,给我们的存储和传输带来了巨大的挑战和困扰。特别是MP4格式的视频,由于其出色的…...
论文复制ChatGPT按钮被发表,撤回后再曝多个类似案例;Midjourney 生成大师级的人像
🦉 AI新闻 🚀 论文复制ChatGPT按钮被发表,撤回后再曝多个类似案例 摘要:一篇物理论文复制了ChatGPT按钮内容,经过两个月同行评审并在杂志上发表。这一现象被知名打假人发现后,发表商决定撤回该论文。此外…...
Python自动化测试 史上最全的进阶教程
Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。 随着时代的变革,也许在未来测试这个职位的需求会越来越少甚至消失,但是每一个组织,每一个客户对软件质量的要求是永远不…...
centos pip失效
在 CentOS 上安装和配置 pip3 可能需要以下步骤: 确保 Python 3 已正确安装:请确保您已经正确地安装了 Python 3。在 CentOS 上,Python 3 可能默认安装在 /usr/bin/python3 路径下。您可以通过运行以下命令来验证 Python 3 是否正确安装&…...
Java——》ThreadLocal
推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...
如何做好利益相关方的期望管理?
利益相关方对项目而言非常重要,有效管理利益相关方的期望可以帮助项目团队更好地满足利益相关方的需求,助于建立良好的合作伙伴关系,提高项目的可持续性和成功率。 如果项目团队无法满足利益相关方的需求,可能会引发冲突、争议或其…...
【K8S系列】深入解析k8s网络插件—Canal
序言 做一件事并不难,难的是在于坚持。坚持一下也不难,难的是坚持到底。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记论点蓝色:用来标记论点 在现代容器化应用程序的世界中…...
从单页面应用角度去解决不跳转页面,也能更改浏览器url地址
正常来说不刷新页面,也能更改浏览器url地址的方法有很多,我们在网上搜的话可以看到有pushState、replaceState、popstate等方法,那还有没有其他方法呢? 答案是有的! 最近做一个vue商城项目的时候,用户点击支…...
Linux:keepalived + ipvsadm
介绍 Linux:keepalived 双热备份(基础备份web)_鲍海超-GNUBHCkalitarro的博客-CSDN博客https://blog.csdn.net/w14768855/article/details/132815057?spm1001.2014.3001.5501 环境 一台 centos7 keepalived ipvsadm (主…...
Linux基础命令(示例代码 + 解释)
查看目录下文件 ls [-a -l -h] [路径] -a(全部) -l(细节) -h(大小) ls ls / ls -a ls -l ls -h ls -alh ls -l -h -a ls -lah /切换目录 cd [路径] change di…...
巨人互动|Google企业户Google“自动采纳建议”应该如何使用
在数字化时代,Google已经成为了人们获取信息的主要渠道之一。而在使用Google搜索时,你可能会发现下拉框中自动提供的搜索建议。这些搜索建议是基于用户搜索行为和相关数据进行推测,旨在使用户更快速地找到所需信息。而Google还提供了一项名为…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
