阿里云服务器Nginx配置SSL证书,实现HTTPS访问

阿里云服务器Nginx配置SSL证书,实现HTTPS访问



Hello,大家好呀!

今天跟大家分享的是一篇实战教程,手把手一步一步教你怎么在阿里云服务器上申请免费的SSL证书,并将证书配置到阿里云服务器的Nginx上,实现HTTPS加密访问的效果。

首先是SSL证书的作用:简单讲就是,配置了SSL证书的服务器可以使得用户在访问网站时,以https加密方式访问后台服务,保证了数据传输的安全性,提高了数据在互联网上传输的过程中被窃取的难度。

本次笔记记录在开发微信小程序过程中后台数据交互时,强制域名访问并要求使用HTTPS传输数据。基于该场景,将之前在阿里云购买的1核2G的云服务器用来做尝试。

申请操作步奏

官方帮助文档:https://help.aliyun.com/document_detail/188316.htm?spm=5176.b657008.help.dexternal.40d51b48wYs5Xk

  1. 首先需要登录阿里云控制台,然后找到【SSL 证书(应用安全)[1]
阿里云服务器Nginx配置SSL证书,实现HTTPS访问
image-20211223151240732
  1. 点击SSL证书 – 立即购买,选择免费的 DV单域名证书即可,立即购买时金额会显示为0,实际上就是免费的。每个人可以免费创建20个证书。

    阿里云服务器Nginx配置SSL证书,实现HTTPS访问
    image-20211223151400608
  2. 购买完成之后,还有回到控制台进行证书申请,这个操作会提交证书申请到CA中心审核。申请时需要填写身份信息和联系电话,然后需要对配置参数做校验。

    阿里云服务器Nginx配置SSL证书,实现HTTPS访问
    image-20211223151837496

    主要是校验:

    1. 主机记录:__dnsauth domainvalidation
    2. 记录值:20210714000000XXXXXgpwl9
  3. 将校验值填入【域名[2]】的解析中,再回到证书申请页面点击校验是否成功。

    阿里云服务器Nginx配置SSL证书,实现HTTPS访问
    image-20211223152602065
  4. 等几分钟后,就可以下载证书文件了。配置教程可以参考官方文档,很详细。

    阿里云服务器Nginx配置SSL证书,实现HTTPS访问
    image-20211223152839990

Linux上配置

首先下载离线包:

wget http://nginx.org/download/nginx-1.9.9.tar.gz

「安装必备的库」

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

「说明:」

  1. gcc:安装gcc-c++编译器
  2. openssl openssl-devel:安装OpenSSL
  3. zlib zlib-devel:安装zlib包
  4. pcre-devel:安装pcre包

「安装Nginx」

解压到 /user/local/

mkdir /usr/local/nginx
tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.19.9

进入目录:nginx-1.9.9

此时如果需要配置SSL,则需要进行下列安装 SSL模块,否则会报如下错误:==nginx: [emerg] unknown directive “ssl” in /usr/local/nginx/conf/ngi…==

执行编译命令:

# 支持https
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
# 编译安装
make
make install

查找安装路径

whereis nginx

执行Nginx

./nginx

查看是否启动成功

ps -ef | grep nginx
# 红色字后面有 master的表示为主进程

**注意:**Nginx如果未开启SSL模块,配置https时会提示错误,由于现在大部分服务都要求https,所以我们在编译安装的时候,记得一定要带上 「–with-http_ssl_module」 配置,否则将来在使用时会提示错误哦,切记切记。

查看nginx原有的模块

/usr/local/nginx/sbin/nginx -V

修改配置文件:

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;


    server {
        listen       80;
        server_name  域名;



        access_log  logs/host.access.log;

        location / {
            root   html;
            index  index.html index.htm;

        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server {
        #SSL 访问端口号为 443
        listen   443 ssl;
        # 填写绑定证书的域名
        server_name  域名;
        root html;
        index index.html index.htm;

        ssl_certificate     /usr/local/nginx/conf/cert/xxxxx.pem;
        ssl_certificate_key  /usr/local/nginx/conf/cert/xxxxx.key;

        # ssl_session_cache    shared:SSL:1m;
        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;  # 指定SSL服务器端支持的协议版本
        ssl_prefer_server_ciphers  on;

        location /welcome {
            root   html;
            index  index.html index.htm;
        }
    }
}

启动Nginx:

/user/local/nginx/sbin/nginx

重新载入Nginx参数

/user/local/nginx/sbin/nginx -s reload

重启Nginx

/user/local/nginx/sbin/nginx -s reopen

停止

/user/local/nginx/sbin/nginx -s stop

开启安全组和防火墙的443端口

阿里云默认开通了443端口

登录Linux服务器后,查看端口放通状态

# 查看防火墙放通的端口号
[root@XXX sbin]# firewall-cmd --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp

#
 添加 443端口
[root@XXX sbin]# firewall-cmd --zone=public --add-port=443/tcp --permanent
success

#
 刷新防火墙上刚配置好的参数
[root@XXX sbin]# firewall-cmd --reload
success

#
 再次查看端口是否已经放通
[root@XXX sbin]# firewall-cmd --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 443/tcp

#
 刷新Nginx参数
[root@XXX sbin]# ./nginx -s relaod

完成所有配置,此时可以通过https访问网站了。

Reference

[1]

SSL 证书(应用安全): https://yundun.console.aliyun.com/?spm=5176.12818093.ProductAndService–ali–widget-home-product-recent.dre0.408816d0GH3RYx&p=cas

[2]

域名: https://dc.console.aliyun.com/next/index?spm=5176.12818093.ProductAndService–ali–widget-home-product-recent.dre3.408816d0GH3RYx#/domain/list/all-domain

原文始发于微信公众号(随笔闲谈):阿里云服务器Nginx配置SSL证书,实现HTTPS访问

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/251150.html

(0)
软考助手的头像软考助手

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!