nginx配置ssl实现https访问


一、介绍

二、创建证书

  • 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 {
        #端口后面添加ssl
        listen  8091 ssl;
        
        #修改ssl证书文件路径
        ssl_certificate      /etc/ssl/certs/nginx-selfsigned.crt;
        
        #修改ssl密钥文件路径
        ssl_certificate_key  /etc/ssl/private/nginx-selfsigned.key;
        
        #添加该行,将http请求自动重定向到https
        error_page 497 301 https://$http_host$request_uri;
    

四、开放端口

  • 改完记得防火墙放开配置的端口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kimi-001

只想在有限的时间分享更多的知识

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值