nginx配置https访问-程序员宅基地

技术标签: nginx  http  其他  https  

01、http&https

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

02、https使用场景

1:网站数据传递的安全性

2:基于前后端分离开发方式,比如微信小程序,等这些移动端应用开发,比如:你的服务器接口必须是:https,微信小程序在真实的项目发布的,如果不是https的接口你也是通不过。

03、https配置前提

1、必须拥有一个已经备案的域名
2、拥有一台服务器(含公网IP)
3、服务器与域名进行解析
4、领取ssl安全证书
5、证书授权与安装至nginx中

04、域名解析

在这步之前,你需要在工信部成功备案信息,注意:备案地址取决你的服务器厂商,服务器在哪个公司购买的就去哪个公司去备案,备案详情请咨询客服,客服会把你讲的明明白白。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0KkMKi2-1640519870392)(img-u6pRtIwy-1640519487086)
注意:若你的域名厂商与服务器厂商不是同一个,需要修改域名厂商的dns服务器地址,(看情况)如下:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

05、申请ssl证书

搜索栏搜索SSL
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
申请免费证书,输入域名
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZSAxGP3-1640520189774)

下载证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBOFPFmv-1640520243745)
解压证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WfSV3bmF-1640519487095)

06、安装nginx

1、创建安装目录

mkdir -p /www/server/nginx
cd /www/server/nginx

2、下载安装nginx

wget http://nginx.org/download/nginx.1.20.1.tar.gz

3、安装编译文件

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

4、解压nginx

tar -zxvf nginx-1.20.1.tar.gz

5、创建临时目录

mkdir -p /var/temp/nginx

6、进入安装包路径并编译安装

cd nginx-1.20.1
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_stub_status_module 

7、编译安装

make && make install

8、进入sbin目录启动nginx

cd /usr/local/nginx/sbin
#执行启动
./nginx
#停止:
./nginx -s stop
#重新加载:
./nginx -s reload 

9、配置nginx环境变量

vim /etc/profile

在末尾加入

export NGINX_HOME=/usr/local/nginx
export PATH=$NGINX_HOME/sbin:$PATH

重启

source /etc/profile

如果你为宝塔安装nginx,无需操作以上步骤,不过不建议使用宝塔安装

07、上传ssl证书

在nginx的conf目录下新建一个cert目录,并将这两个文件上传到cert目录下
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGUdV3dF-1640519487096)

08、配置ssl

# 开启gzip压缩
gzip on;
gzip_min_length 10k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png image/jpg;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";

# tomcat服务
upstream tomcatservers {
    
   server 127.0.0.1:8080;
   server 127.0.0.1:8081;
}

server {
    
    listen 80;
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
    
        proxy_pass http://tomcatservers;
    }
}


#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/6179501_www.qdwork.top.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/6179501_www.qdwork.top.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
    
        proxy_pass http://tomcatservers;
    }
}

重启nginx服务

注意:如果是宝塔安装的nginx,还需在宝塔面板放行443端口,当网站配置https后,就无法通过js加载http服务的资源了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qd2013498006/article/details/122159653

智能推荐

读取HG-S1010测量值 RS485通信 modbus协议 FP7_hg s1010接线-程序员宅基地

文章浏览阅读210次。HG-S1010配有模拟量输出(电压、电流),NPN/PNP输出,也可通过外接通讯模块进行输出。通信模块包括SC-HG1-485模块(RS485接口协议)、SC-HG1-ETC模块(EtherCAT总线)、SC-HG1-C模块(CCLink协议)等。本文介绍连接松下FP7与HG-S1010配RS485通信模块进行通信,通过modbus协议读取HG-S1010当前测量值。主控制器测量值位置在地址H64处,占两个字节。将SC-HG1-485模块与控制器HG-SC101连接,在端子台+、-插入通信用线。_hg s1010接线

关于计算机一级考试的相关整理(巨详细版)-程序员宅基地

文章浏览阅读328次,点赞6次,收藏10次。关于计算机一级考试的局详细版整理

Java 面向对象基础篇【接口、抽象类、实现类之间的关系】-程序员宅基地

文章浏览阅读740次,点赞10次,收藏7次。在面向对象设计中,根据具体需求选择使用接口、抽象类或实现类来组织扩展与维护的代码结构 ···

巧用Superset大数据分析平台搞定各类图表_superset分析hive表-程序员宅基地

文章浏览阅读6.2w次,点赞5次,收藏46次。前言其实大数据图表展示的这类平台有很多,Superset是其中之一,最近有个需求对各类图表展示的开发较多,索性将工作量交给这个平台。介绍Superset的中文翻译是快船,而Superset其实是一个自助式数据分析工具,它的主要目标是简化我们的数据探索分析操作,它的强大之处在于整个过程一气呵成,几乎不用片刻的等待。 部署docker方式(推荐)docker pull amancevice/carav_superset分析hive表

win10安全中心误删文件怎么办?解析恢复与预防策略-程序员宅基地

文章浏览阅读1.3k次,点赞28次,收藏21次。在使用Windows 10的过程中,许多用户依赖于其内置的安全中心来保护电脑免受恶意软件的侵害。然而,有时安全中心的误判可能导致重要文件被错误地删除。当面对这种情况时,了解如何恢复误删的文件并掌握预防措施显得尤为重要。本文将为您详细解析恢复误删文件的多种方法,并为您提供一系列实用的预防策略,以确保您的数据安全。

随便推点

php7 amqp扩展安装,CNESA - php7安装amqp扩展(基于Centos7.x)-程序员宅基地

文章浏览阅读46次。当前使用Centos7.x系统,php使用7.1版本,WLNMP一键安装包amqp扩展包地址:https://pecl.php.net/package/amqp1、安装所需依赖,如果在编译时还提示缺少其他依赖,请自行安装12yuminstallepel-releaseyuminstallautoconfgccgcc-c++librabbitmqlibrabbitmq-devel2、下载amqp最新...

通过二次开发在HyperMesh中添加顶层窗口_hypermesh如何创建工具窗口-程序员宅基地

文章浏览阅读824次,点赞2次,收藏8次。HyperMesh二次开发创建顶层窗口在HyperMesh中进行二次开发我们经常会做一些弹窗插件,在窗口输入某些参数,实现某些功能,但是当我们需要重复使用这个功能的时候,只要中途有任何返回HyperMesh软件的操作,普通的窗口就会直接进入后台。以下为实例代码:destroy .\u9876\u5c42\u7a97\u53e3set win .\u9876\u5c42\u7a97\u53e3toplevel $win -padx 20 -pady 15#下面这行代码为控制窗口在电脑窗口最顶层_hypermesh如何创建工具窗口

大数据框架版本_你们公司的大数据框架版本-程序员宅基地

文章浏览阅读157次。Hive 3.12Hadoop 3.1.3hbase 2.0.5spark 3.0.0zookeeper 3.5.7flume 1.9.0ranger 2.0.0sqoop 1.4.7_你们公司的大数据框架版本

jvm学习-程序员宅基地

文章浏览阅读126次。Java虚拟机一 java内存区域和内存溢出异常运行时数据区域栈帧是方法运行期的基础数据结构。程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理线程恢复等基础功能都需要依赖这个计数器来完成。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的指令。因此,为

vue x 兼容iphone_vue 项目对iphoneX底部兼容处理-程序员宅基地

文章浏览阅读379次。import Vue from 'vue'Vue.directive('isIphoneX', {bind: function (el, binding) {const _local = 'ios'let isIphoneX = falseif (_local === 'ios' && window.screen.height) {isIphoneX = window.screen..._min-height: 89vh;

MyBatis-Plus和SpringBoot的整合_<dependency> <groupid>com.baomidou</groupid> <arti-程序员宅基地

文章浏览阅读2.8k次,点赞2次,收藏4次。简介MyBatis-Plus是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。一、MyBatis-Plus和SpringBoot整合应用1.1 项目依赖在原项目依赖上,加上下面依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-start_ com.baomidou mybatis-plus-boot-s

推荐文章

热门文章

相关标签