Nginx 本地配置ssl证书

Nginx 本地配置ssl证书

主要为了本地使用https站点访问测试
本地linux 服务器环境为Centos7

本地安装mkcert证书工具

  • 对于 Debian 或 Ubuntu 系统,你可以使用以下命令安装:
sudo apt update
sudo apt install mkcert
# 验证是否安装成功
mkcert --version
  • 对于 Centos8 系统,你可以使用以下命令安装:
sudo dnf install mkcert
# 验证是否安装成功
mkcert --version
  • 对于 Centos7 系统,需要手动安装:
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
mv mkcert-v1.4.3-linux-amd64 /usr/local/bin/mkcert
chmod +x /usr/local/bin/mkcert
# 需要手动刷新一下bash配置
source ~/.bash_profile
# 验证是否安装成功
mkcert --version
  • 安装 mkcert 依赖:根证书

mkcert 需要在系统中安装一个根证书,才能让你生成受信任的本地证书。安装根证书的步骤通常会在安装 mkcert 时自动完成,但你也可以手动执行:

mkcert -install

生成本地证书

这将为 dev.test01.com 创建一个 SSL 证书和密钥文件,默认文件名为:
dev.test01.com.pem(证书)
dev.test01.com-key.pem(私钥)
你可以用其他域名(如 localhost)或者使用通配符(如 *.example.com)来生成证书。比如:

  • 创建 SSL 证书和密钥文件的命令如下:
mkcert dev.test01.com#执行如下
[18:40:20 root@centos8 dev.test01.com]#pwd
/etc/nginx/ssl/dev.test01.com
[18:40:23 root@centos8 dev.test01.com]#mkcert dev.test01.com
Created a new certificate valid for the following names 📜- "dev.test01.com"The certificate is at "./dev.test01.com.pem" and the key at "./dev.test01.com-key.pem" ✅It will expire on 6 June 2027 🗓[18:40:23 root@centos8 dev.test01.com]#ls
dev.test01.com-key.pem  dev.test01.com.pem

Nginx 站点配置证书路径

server {listen 80;server_name dev.test01.com;index index.html index.htm index.php default.html default.htm default.php;root  /usr/share/nginx/html/dev.test01.com;location ~ /\. {deny all;}location / {return 301 https://$host$request_uri; # http跳转https}access_log off;
}server{listen 443 ssl;server_name dev.test01.com ;index index.html index.htm index.php default.html default.htm default.php;root  /usr/share/nginx/html/dev.test01.com;ssl_certificate /etc/nginx/ssl/dev.test01.com/dev.test01.com.pem; # 本地生成的证书ssl_certificate_key /etc/nginx/ssl/dev.test01.com/dev.test01.com-key.pem; # 本地服务器生成的证书秘钥ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";ssl_session_cache builtin:1000 shared:SSL:10m;access_log off;
}

把根证书安装到本地电脑

当你在虚拟机中使用 mkcert 生成的证书时,浏览器会提示证书不安全,通常是因为 浏览器并没有信任你在虚拟机中生成的证书。mkcert 默认生成的证书是由本地根证书机构签发的,但这个根证书并不会自动添加到其他设备(如你的实体机)中,因此浏览器无法验证证书的有效性。

为了解决这个问题,你需要将 mkcert 生成的 根证书 安装到本地机器的信任存储中。以下是解决这个问题的步骤:

步骤 1:导出并传输根证书

在虚拟机中使用 mkcert 生成的证书文件,包括根证书 rootCA.pem,通常位于 ~/.local/share/mkcert 或 ~/.mkcert 目录下。

导出并将 rootCA.pem 证书文件复制到实体机上。

cp ~/.local/share/mkcert/rootCA.pem /path/to/your/host/

或者,如果证书文件存放在其他目录,找到并传输 rootCA.pem。

步骤 2:在本地实体机上安装根证书

根据你使用的操作系统,安装根证书的方式略有不同。

  • 对于 macOS:
    双击 rootCA.pem 证书文件,它将会在 钥匙串访问 中打开。
    选择将证书添加到 系统 钥匙串。
    确保将证书的信任设置为 始终信任。
    关闭钥匙串访问。
  • 对于 Windows:
    双击 rootCA.pem 文件,打开证书安装向导。
    选择 将证书安装到受信任的根证书颁发机构。
    按照提示完成安装。
    安装后,重启浏览器。

注意: rootCA.pem 如果在window下无法直接点击运行,可以把rootCA.pem更改后缀名为rootCA.cer再点击运行
在这里插入图片描述

  • 对于 Linux:
    将 rootCA.pem 证书复制到系统的证书目录(例如 /usr/local/share/ca-certificates/)。
sudo cp rootCA.pem /usr/local/share/ca-certificates/

运行以下命令更新证书存储:

sudo update-ca-certificates

重启浏览器。

步骤 3:清除浏览器缓存并重启

有时浏览器可能会缓存错误的证书信息,因此在安装根证书后,建议清除浏览器的缓存并重启浏览器。

步骤 4:验证证书是否有效

现在,重新访问你的站点,浏览器应该不再显示 “不安全” 的警告,证书应该被正确信任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28995.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis相关面试题

Redis相关面试题 缓存三剑客 面试官:什么是缓存穿透 ? 怎么解决 ? 缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情况…

Android ChatOn-v1.66.536-598-[构建于ChatGPT和GPT-4o之上]

ChatOn 链接:https://pan.xunlei.com/s/VOKYnq-i3C83CK-HJ1gfLf4gA1?pwdwzwc# 添加了最大无限积分 删除了所有调试信息 语言:全语言支持

机器学习(六)

一,决策树: 简介: 决策树是一种通过构建类似树状的结构(颠倒的树),从根节点开始逐步对数据进行划分,最终在叶子节点做出预测结果的模型。 结构组成: 根节点:初始的数据集…

求最小公倍数

求最小公倍数 编程实现: 求最小公倍数。 具体要求: 1、小猫询问“请输入第一个数”,并在列表中求出该数的质因数放入列表A,例如输入12; 2、小猫依次询问“请输入第二个数”,并在列表中求出该数的质因数…

【人工智能】GPT-4 vs DeepSeek-R1:谁主导了2025年的AI技术竞争?

前言 2025年,人工智能技术将迎来更加激烈的竞争。随着OpenAI的GPT-4和中国初创公司DeepSeek的DeepSeek-R1在全球范围内崭露头角,AI技术的竞争格局开始发生变化。这篇文章将详细对比这两款AI模型,从技术背景、应用领域、性能、成本效益等多个方…

C/C++蓝桥杯算法真题打卡(Day1)

一、LCR 018. 验证回文串 - 力扣(LeetCode) 算法代码: class Solution { public:bool isPalindrome(string s) {int n s.size();// 处理一下s为空字符的情况if (n 0) {return true; // 修正拼写错误}// 定义左右指针遍历字符串int left …

SpringUI高保真动态交互元件库:助力产品原型设计

SpringUI 是一个专为Web设计与开发领域打造的高质量、全面且易于使用的交互元件集合。通过提供一系列预制的、高质量的交互组件,帮助设计师快速构建出功能丰富、界面美观的原型。 ————基础元件: ——————按钮 Button:基础按钮、禁用…

vue+neo4j 四大名著知识图谱问答系统

编号: D039 视频 vueneo4j四大名著知识图谱问答系统 技术架构 vuedjangoneo4jmysql技术实现 功能模块图 问答:基于知识图谱检索、支持图多跳、显示推理路径 姜维的师傅的主公的臣是谁: 马谡 知识图谱:四大名著总共4个图谱 红楼梦图谱 …

学习使用ESP8266进行MQTT通信并在网页上可视化显示

目录 一、工具 二、 流程 三、代码实现 设置MQTT服务器地址 设置服务器和端口号 连接MQTT服务器并订阅话题 回调处理函数 发布数据到话题 四、调试软件使用 打开MQTTx 添加话题 五、网页使用 一、工具 arduino ide esp8266/32单片机 lot物联网网页 MQTTx软件或者m…

大模型应用开发学习笔记

Huggingface 下载模型: model_dirr"G:\python_ws_g\code\LLMProject\session_4\day02_huggingface\transformers_test\model\uer\uer\gpt2-chinese-cluecorpussmall\models--uer--gpt2-chinese-cluecorpussmall\snapshots\c2c0249d8a2731f269414cc3b22dff021…

虚拟卡 WildCard (野卡) 保姆级开卡教程

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 本篇教程为 WildCard 的介绍以及开卡教学,要了解不同平台(Grok、Talkatone 等)的订阅方式请移步《订阅教程》分类 当我们想要充值国外平台会员时,一般都需要使…

C++实现3D(EasyX)详细教程

一、关于3D 我们看见,这两个三角形是相似的,因此计算很简单 若相对物体的方向是斜的,计算三角函数即可 不会的看代码 二、EasyX简介 initgraph(长,宽) 打开绘图 或initgraph(长,宽…

Qt 进度条与多线程应用、基于 Qt 的文件复制工具开发

练习1:Qt 进度条与多线程应用 题目描述 开发一个基于 Qt 的应用程序,该应用程序包含一个水平进度条(QSlider),并且需要通过多线程来更新进度条的值。请根据以下要求完成代码: 界面设计: 使用 QS…

【算法day2】无重复字符的最长子串 两数之和

无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 https://leetcode.cn/problems/longest-substring-without-repeating-characters/ class Solution { public:int lengthOfLongestSubstring(string s) {int sub_length …

XHR请求解密:抓取动态生成数据的方法

在如今动态页面大行其道的时代,传统的静态页面爬虫已无法满足数据采集需求。尤其是在目标网站通过XHR(XMLHttpRequest)动态加载数据的情况下,如何精准解密XHR请求、捕获动态生成的数据成为关键技术难题。本文将深入剖析XHR请求解密…

【漫话机器学习系列】121.偏导数(Partial Derivative)

偏导数(Partial Derivative)详解 1. 引言 在数学分析、机器学习、物理学和工程学中,我们经常会遇到多个变量的函数。这些函数的输出不仅取决于一个变量,而是由多个变量共同决定的。那么,当其中某一个变量发生变化时&…

[C语言日寄] 字符串操作函数的使用及其拓展

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

计算机毕业设计Python+Django+Vue3微博数据舆情分析平台 微博用户画像系统 微博舆情可视化(源码+ 文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

ssm_mysql_暖心家装平台

收藏关注不迷路!! 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多…

地下井室可燃气体监测装置:守护地下安全,防患于未“燃”!

在城市的地下,隐藏着无数的燃气管道和井室,它们是城市基础设施建设的重要部分,燃气的使用,给大家的生活提供了极大的便利。在便利生活的背后,也存在潜在的城市安全隐患。 近年来,地下井室可燃气体泄漏事故…