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

nginx配置ssl实现https访问

文章目录

  • 一、介绍
  • 二、创建证书
    • 1、OpenSSL创建自签名密钥和证书
  • 三、nginx配置
  • 四、开放端口


一、介绍

  • nginx配置ssl证书,实现https访问,可以使用自签名SSL证书或者购买机构颁发的证书两种方式
  • 参考链接
    • https://blog.csdn.net/weixin_39198406/article/details/83618765
    • https://blog.csdn.net/weixin_44316575/article/details/85328224

二、创建证书

  • TLS/SSL通过公共证书和密钥的相互结合来运行。SSL密钥在服务器上保密。它用于加密发送给客户端的内容。SSL证书与任何请求获得内容的人共享。它可用于解密由关联的SSL密钥签名的内容

1、OpenSSL创建自签名密钥和证书

  • 使用这种方式各种请求会提示不安全,会拦截该请求

    • 使用浏览器访问时提示不安全,需要用户手动确认,才能继续访问
    • 使用postman测试接口时需要关闭ssl 证书验证
  • 命令

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
    
    • openssl
      • 这是用于创建和管理OpenSSL证书、密钥和其他文件的基本命令工具
    • req
      • 此子命令指定我们要使用X.509证书签名请求管理。“X.509”是SSL和TLS为其密钥和证书管理所遵循的公钥基础结构标准。我们想要创建一个新的X.509证书,所以我们使用这个子命令
    • -x509
      • 这通过告诉实用程序我们要创建自签名证书而不是生成证书签名请求来进一步修改上一个子命令
    • -nodes
      • 这告诉OpenSSL跳过用密码保护我们的证书的选项。当服务器启动时,需要Nginx能够在没有用户干预的情况下读取文件。密码短语会阻止这种情况发生,因为我们必须在每次重启后输入密码
    • -days 365
      • 此选项设置证书的有效时间长度,单位:天
    • -newkey rsa:2048
      • 这指定我们要同时生成新证书和新密钥。我们没有创建在上一步中签署证书所需的密钥,因此我们需要将其与证书一起创建。该rsa:2048部分告诉它制作一个2048位长的RSA密钥
    • keyout
      • 生成的密钥文件的位置
    • out
      • 生成的证书文件位置
  • 执行命令过后接着输入一些信息

    //国家
    Country Name (2 letter code) [XX]:CN//省
    State or Province Name (full name) []:bj//城市
    Locality Name (eg, city) [Default City]:bj//组织
    Organization Name (eg, company) [Default Company Ltd]:gs//组织单位
    Organizational Unit Name (eg, section) []:gs//输入与服务器关联的域名,或者是您服务器的公共IP地址
    Common Name (eg, your name or your server's hostname) []:127.0.0.1//邮箱
    Email Address []:123@qq.com
    
  • 若提示Can’t open /etc/ssl/private for writing, No such file or directory

    • 意思是没有/etc/ssl/private文件夹,自己手动创建即可
  • 创建一个完整的Diffie-Hellman组,用于与客户协商完整的保密

    openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
    

三、nginx配置

  • https默认port是443,如果配置的port是443,访问时不用添加port
  • 在需要配置ssl的虚拟主机server块中修改
    • 直接复制nginx.conf中的ssl server模块,修改以下部分
    server {#端口后面添加ssllisten  8091 ssl;#修改ssl证书文件路径ssl_certificate      /etc/ssl/certs/nginx-selfsigned.crt;#修改ssl密钥文件路径ssl_certificate_key  /etc/ssl/private/nginx-selfsigned.key;#添加该行,将http请求自动重定向到httpserror_page 497 301 https://$http_host$request_uri;
    

四、开放端口

  • 改完记得防火墙放开配置的端口
http://www.lryc.cn/news/13111.html

相关文章:

  • JavaScript 语句
  • 将古老的ASP项目转换为PHP初探
  • 数据结构复习(七)模板类封装实现不带头结点的单链表
  • IDEA插件 RestfulTool插件——Restful服务开发辅助工具集
  • 2023年全国最新会计专业技术资格精选真题及答案1
  • Linux 配置RAID组
  • 【2021/推荐/社交网络】Socially-Aware Self-Supervised Tri-Training for Recommendation
  • Django搭建个人博客Blog-Day06
  • DQL 多表查询
  • BUUCTF Reverse xor
  • vite和esbuild/roolup的优缺点
  • 32-Golang中的map
  • LeetCode-384-打乱数组
  • 九龙证券|重大利好!期货公司打新再“解绑”:可直接参与首发网下配售!
  • 信号完整性设计规则之串扰最小化
  • Windows Ubuntu双系统 设置时间同步方式
  • 【python】英雄联盟电竞观赛引擎 掉落提示 CapsuleFarmerEvolved 「Webhook」「钉钉」
  • 加油站会员管理小程序实战开发教程11
  • Python量化入门:投资的风险有哪些?
  • AV1编码标准整体概述
  • 基于springboot+vue的药物咨询平台
  • 第64章 SQL 主机教程
  • 【软件测试】python接口自动化测试编写脚本,资深测试总结方法,你的实用宝典......
  • MathType公式编辑器过期(禁止联网)的解决方案
  • 电子技术——共栅和共源共栅放大器的高频响应
  • 基于jsplumb构建的流程设计器
  • 解析从Linux零拷贝深入了解Linux-I/O(下)
  • 【学习笔记2.19】动态规划、MySQL、Linux、Redis(框架)
  • String intern方法理解
  • 解决 cocosjs与安卓原生集成 崩溃问题