nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)

简介: nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)

最近在阿里云上入手了一台云服务器,准备搭建一套java程序,在Nginx配置SSL证书时,配上之后前端可以正常以https的方式打开,但是访问不到后端,自己也是明明知道是Niginx配置的问题,但就不知道错哪了,当时心里的那种感觉真是无法表达呜呜呜…

经过排查发现前端访问后端在nginx中做转发代理时,localhost ~^api 地址配置错了。具体是什么原因呢,如下所示

注:本篇文章主要讲的是Nginx配置实现https的形式进行访问网站,如果有的博主遇到Nginx配置访问网站404、SSL证书在哪获取等问题,私信我,不收取任何费用,我会一一的教你如何去解决,欢迎大家打扰

Nginx配置源码

先来看我的配置源码:

这段源码中我都标注了需要修改的地方,之前我配置的是通过http的方式访问域名,是没有问题的,但是当我通过https访问时,就出现了访问不到后端的问题,其实我的问题没有出在nginx配置上,出在了前端代码中访问后端Api时,地址错了

注意:如果你按照我的这种方式进行配置的,确保云服务器中已经添加配置了443和80端口,如果安装了宝塔,宝塔里面也需要添加配置一下这两个端口(不知道怎么配,或者不明白的,私信我!)

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
stream {
    log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time';
  
    access_log /www/wwwlogs/tcp-access.log tcp_format;
    error_log /www/wwwlogs/tcp-error.log;
    include /www/server/panel/vhost/nginx/tcp/*.conf;
}
events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }
http
    {
        include       mime.types;
        #include luawaf.conf;
        include proxy.conf;
        default_type  application/octet-stream;
        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;
        sendfile   on;
        tcp_nopush on;
        keepalive_timeout 60;
        tcp_nodelay on;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors on;
        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";
        limit_conn_zone $binary_remote_addr zone=perip:10m;
        limit_conn_zone $server_name zone=perserver:10m;
        server_tokens off;
        access_log off;
    server {
        listen 80;
        listen 443 ssl http2;
        server_name  这里填你的域名地址;
        add_header Content-Security-Policy upgrade-insecure-requests;
        
        if ($server_port !~ 443){
          rewrite ^(/.*)$ https://$host$1 permanent;
        }
        
        # 证书地址
        ssl_certificate  这里填你的SSL证书地址.pem结尾那个文件;
        ssl_certificate_key 这里填你的SSL证书地址.key结尾那个文件;
        ssl_prefer_server_ciphers on;
        
        gzip on;
        gzip_vary on;
        gzip_comp_level 9;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
        gzip_disable "MSIE [1-6]\.";
        gzip_min_length 2048;
        
      location / {
            root   这个地方填存放前端dist文件地址; 
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        
        location ^~ /api/ {
          proxy_pass 这个地方填存放后端地址;# 我的是服务器公网IP+后端端口号
          proxy_read_timeout 1800s;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade"; 
        }
    }
include /www/server/panel/vhost/nginx/*.conf;
}

我的报错点

我前端用的是ant design vue,在.env.production我之前是这样配置的

这种方式http是可以正常访问的,我在配置htts访问时,根本没有想到需在修改一下这个地方,我当时想http可以访问https应该也可以,就没有这个地址

原因:因为之前nginx中api配置的是IP地址+后端端口号,前端请求Nginx打到localhost上,通过.env.production文件中配置的IP地址+后端端口号直接去服务器中找这个后端端口号了,没有走nginx中api配置,因为我是用的服务器公网IP+端口号,只要服务器中这个端口号下对应的进程在运行就可以访问到的后端

VUE_APP_API_BASE_URL=http://服务器公网IP:端口号/jeecg-boot/

现在当我改成https访问时,我是用过域名的形式进行访问,在Nginx配置中server_name 指定的域名和访问后端Api地址中的域名一致

VUE_APP_API_BASE_URL=https://域名/api/jeecg-boot

注意:如果你现在是想直接在Nginx配置https进行访问,需要注意的点有

  1. 确保SSL证书文件已下载,.pem和.key两个文件
  2. 确保已经与下载的SSL文件证书绑定(你下载的SSL证书是你域名绑定的)
  3. 开放80和443端口,在云服务器上进行配置,如果装了宝塔面板,宝塔里面也需要开放一下443和80(如果不配置宝塔的话,会一直加载访问不到)
  4. 前端代码中配置文件的配置(和我遇到的错误一样,这块可能有点难理解)

    上面的这几种在配置时需要注意的几个点,以上有不明白的或者不知道怎么配置的,私信我,免费配置及解答,24小时在线!
目录
相关文章
|
5月前
|
运维 网络协议 安全
为什么经过IPSec隧道后HTTPS会访问不通?一次隧道环境下的实战分析
本文介绍了一个典型的 HTTPS 无法访问问题的排查过程。问题表现为 HTTP 正常而 HTTPS 无法打开,最终发现是由于 MTU 设置不当导致报文被丢弃。HTTPS 因禁止分片,对 MTU 更敏感。解决方案包括调整 MSS 或中间设备干预。
|
6月前
|
数据采集 Web App开发 iOS开发
解决Python爬虫访问HTTPS资源时Cookie超时问题
解决Python爬虫访问HTTPS资源时Cookie超时问题
|
10月前
|
安全 网络协议 网络安全
只有IP地址没有域名,如何实现HTTPS访问?
在仅有IP地址而无域名的情况下,实现HTTPS访问并非不可能。主要挑战包括证书颁发机构(CA)对IP地址的支持有限及浏览器兼容性问题。解决方案有:1) 搭建私有CA为内部IP地址颁发证书;2) 使用支持IP地址的公共CA服务。选择合适的方案需根据需求权衡。具体步骤包括选择证书类型、生成CSR文件、提交并完成验证、安装SSL证书和配置强制HTTPS访问。确保IP地址稳定,并定期维护安全性。 **申请优惠**:访问JoySSL官网并填写注册码“230907”可优惠申请IP地址证书。
1826 5
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
4451 8
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
1200 3
|
3月前
|
网络协议 应用服务中间件 网络安全
阿里云免费版SSL证书申请及部署按照流程,白嫖阿里云20张SSL证书
阿里云提供免费SSL证书,品牌为DigiCert,单域名证书每账号可申领20张,有效期3个月。通过数字证书控制台申请,支持DNS验证,审核通过后可下载多种格式证书,适用于Nginx、Apache等服务器,轻松实现网站HTTPS加密。
622 9
|
5月前
|
运维 监控 安全
阿里云SSL证书免费版与收费版有什么区别?免费版SSL证书申请及部署流程参考
在当今数字化时代,网站安全已成为每个网站运营者不可忽视的重要环节。阿里云数字证书管理服务为不同规模的网站提供了多种SSL证书类型和品牌,包括但不限于电商、小型企业、大型企业或个人等。这些SSL证书不仅能有效保护网站数据传输安全,还能提升用户对网站的信任度。本文将详细解析阿里云SSL证书的免费版与收费版之间的差异,并提供选购指南及申请流程,帮助您根据网站规模和业务需求选择最适合的证书。
|
7月前
|
安全 数据建模 应用服务中间件
阿里云SSL证书价格、证书类型及免费版证书申请和证书部署教程参考
阿里云SSL证书有收费版也有免费版,收费版DV域名级SSL类型405元起,免费版证书为DV域名级SSL类型,每个实名个人和企业主体在一个自然年内可以一次性领取20张免费证书。本文为大家详细介绍阿里云SSL证书价格情况,包括不同域名类型、证书类型、证书等级和证书品牌的相关收费标准,以及免费版证书的申请和部署教程参考。
|
3月前
|
网络协议 应用服务中间件 网络安全
阿里云ssl证书申请具体操作流程图,2025年新手图文教程
2025年阿里云SSL免费证书申请图文教程:通过数字证书管理控制台,申请Digicert品牌单域名免费证书,每账号可领20张,有效期3个月。流程包括登录控制台、购买免费证书、创建证书、DNS验证(TXT记录)、审核及下载,支持Nginx、Tomcat等多格式证书,全程免费,操作简单。