2. 获取数字证书,搭建nginx服务器,验证https请求

一、 前提知识

  1. 首先我们知道访问域名时,http请求默认端口为80,https为443。
  2. 那么我们现在就需要对这两个端口进行监听,这里我们就要用到nginx服务器来做反向代理了。
  3. 但是如果我们想做https请求,就要考虑nginx服务器的数字证书问题,我们可以在阿里云服务器上购买数字证书

二、获取数字证书

  1. 登录到阿里云控制台,找到SSL证书功能,第一个是收费证书,第二个是免费证书,付费证书最便宜一年也要300+,作为穷人只能研究免费证书了
    在这里插入图片描述
    在这里插入图片描述
  2. 免费证书和收费证书区别阿里云官方描述
    在这里插入图片描述
  3. 申请安装证书入口
    在这里插入图片描述
  4. 填写信息进行申请。
    域名验证方式:如果你的域名是在当前的阿里云账号下申请的,就选“自动DNS验证”,如果不在当前账号下,就选“手工DNS验证”
    在这里插入图片描述
  5. 添加dns解析记录,按照上图中SSL证书验证提示,登录到域名管理控制台,为域名添加TXT记录,主机记录为_dnsauth,复制记录值。如果是自动解析,会自动进行创建。
    在这里插入图片描述
    在这里插入图片描述
  6. 申请通过之后,证书签发速度很快,大概3分钟左右就好了
    在这里插入图片描述
  7. 点击部署后提示
    在这里插入图片描述
  8. 跳转后点击确定
    在这里插入图片描述
  9. 回到SSL证书,点击下载
    在这里插入图片描述
  10. 得到一个安装包,里面有两个文件,我们至此获取到了证书,接下来要将证书部署到nginx服务器
    在这里插入图片描述

三、搭建nginx服务器

3.1 安装nginx操作步骤

1. 创建一个文件夹/data/software用来放置软件,
	mkdir -p /data/software
	cd /data/software
2. 下载nginx服务器
	wget -c https://nginx.org/download/nginx-1.23.1.tar.gz
3. 解压
	tar -zxvf nginx-1.23.1.tar.gz
4. 安装编译工具和依赖
	yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
5. 编译,因为我们后续会考虑使用https,所有make时要带上https相关依赖
	./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

	--prefix 表示nginx安装目录
	--with-http_stub_status_module 表示监视模块,可以查看目前的连接数等一些信息
	--with-http_ssl_module  处理https所需要的模块
6. make编译
	make
7.  安装
	make install
8. 启动
	cd /usr/local/nginx/sbin
	./nginx
9. 将nginx指令添加到环境变量
	vim /etc/profile
10. 在文件的尾部追加如下:
	export NGINX_HOME=/usr/local/nginx
	export PATH=$NGINX_HOME/sbin:$PATH 
11. 重启配置文件,即可配置nginx全局指令
	source /etc/profile
12. nginx其余指令
	#停止:
		./nginx -s stop
	#重新加载配置文件:
		./nginx -s reload

3.2 导入证书

1. 进入Nginx默认安装目录,创建证书目录,命名为cert。
	cd /usr/local/nginx/conf
	mkdir cert
2. 将两个证书文件上传到该目录下

在这里插入图片描述

3.3 修改nginx配置文件

1. 打开配置文件
	vim /usr/local/nginx/conf/nginx.conf
2. 设置80端口的监听,接收http请求,location 指明默认的访问地址
	server {
        listen       80;
        server_name   yangtao.love;
	    # rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    	# location / {
        	# index index.html index.htm;
    	# }
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   /data/app/front/demo/;
            index  index.html index.htm;
        }

        error_page 404 /404.html;
        location = /40x.html {
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
3. 设置443端口监听,接收https请求
	server {
        listen 443 ssl;
        #配置HTTPS的默认访问端口为443。
	    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
		#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
        server_name yangtao.love;
        root html;
        index index.html index.htm;
        ssl_certificate cert/9182380_yangtao.love.pem;
        ssl_certificate_key cert/9182380_yangtao.love.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #表示使用的加密套件的类型。
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        location / {
            root  /data/app/front/demo/;
            index index.html index.htm;
        }

        error_page 404 /404.html;
        location = /40x.html {
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
4. 保存退出,刷新配置
	nginx -s reload
5. 在目录/data/app/front/demo/下创建一个index.html静态页面,里面随便写点东西后上传上去,如
	<!DOCTYPE HTML>
	<html>
	<head>
	  <title>Home</title>
	  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
	  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	  <link href="css/style.css" rel="stylesheet" type="text/css" media="all"/>
	  <script src="js/jquery.min.js"></script>
	  <script src="js/script.js"></script>
	  <script src="js/microfiche.js"></script>
	  <link rel="stylesheet" href="css/microfiche.css">
	</head>
	<body>
	  <div>
	    HELLO WORLD
	  </div>
	</body>
	</html>

四、验证

  1. 先保证服务器的80端口和443端口开启
    在这里插入图片描述
  2. 浏览器访问https://域名,得到正常显示,成功
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yang134679/article/details/128747440