Nginx服务器安装阿里云SSL证书教程[通俗易懂]

Nginx服务器安装阿里云SSL证书教程[通俗易懂]Nginx配置SSL证书,大致分为5个步骤:步骤1:申请一张测试试用证书步骤2:下载证书并上传到服务器步骤3:在服务器配置证书步骤4(可选):配置HTTP强制跳转HTTPS步骤54:开放HTTPS访问及验证下面开始我们的配置步骤1:申请一张测试试用证书打开阿里云控制台官网,搜索SSL,点击进入SSL证书(应用安全)选择左侧SSL证书,点击免费证书点击立即购买,会弹出右侧购买栏,选择DV单域名证书【免费试用】,点击下方购买由于该证书限制只能有一个,所以接

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Nginx配置SSL证书,大致分为5个步骤:

  • 步骤1:申请一张测试试用证书

  • 步骤2:下载证书并上传到服务器

  • 步骤3:在服务器配置证书

  • 步骤4(可选):配置HTTP强制跳转HTTPS

  • 步骤5:开放HTTPS访问及验证

下面开始我们的配置

步骤1:申请一张测试试用证书

打开阿里云控制台官网,搜索SSL,点击进入SSL证书(应用安全)

在这里插入图片描述
选择左侧SSL证书,点击免费证书

在这里插入图片描述
点击立即购买,会弹出右侧购买栏,选择DV单域名证书【免费试用】,点击下方购买

在这里插入图片描述
由于该证书限制只能有一个,所以接下来的步骤只能靠你自己了。根据提示完成购买即可。

购买完成后,会提示你是否进行申请审核,根据提示信息完成审核,并自动解析DNS,下图是解析后的DNS记录
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cf67bfbb2464a8bad3a00772ec7fdd8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAU29waGlh5pmo,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

步骤2:下载证书并上传到服务器

完成后,在SSL证书状态栏是已签发状态,此时,我们点击右侧下载按钮,弹出下载页面

在这里插入图片描述
选择Nginx版本,下载

在这里插入图片描述
下载完成后是一个以编号和域名的命名的zip文件,之后进行解压

在这里插入图片描述在这里插入图片描述
解压完成后可重命名成你想要的名称,注意这两个文件的后缀分别是.key .pem

接下来,做Nginx中的准备工作,打开Xshell,或者其他工具,连接到云服务器

# 进入到Nginx服务器的conf目录中(根据你自己的Nginx安装目录)
[root@clover ~]# cd /usr/local/application/server/nginx/conf/
# 新建cert文件夹,用于存放证书文件
[root@clover conf]# mkdir cert
# 进入cert目录
[root@clover conf]# cd cert

打开xftp,将下载好的证书文件上传到cert文件夹中,我在上传前把文件名称改成了我设定的了

在这里插入图片描述
上传完成后,查看cert文件夹,确保已完成上传

在这里插入图片描述

步骤3:在服务器配置证书

进行Nginx配置文件的配置

#退到conf文件夹中
[root@clover cert]# cd ..
[root@clover conf]#
 #建议先copy一份原来的nginx.conf文件
[root@clover conf]# cp nginx.conf ./ nginx-copy.conf
 #修改nginx.conf配置文件
[root@clover conf]# vim nginx.conf
 #按i键进入编辑模式。
 #在配置文件中定位到HTTP协议代码片段(http{}),并在HTTP协议代码里面添加以下server配置(如果server配置已存在,按照以下注释内容修改相应配置即可)。

以下属性中,以ssl开头的属性表示与证书配置有关。

#server 是在http {} 片段里面的哦!
server { 
   
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    #需要将clover.fit替换成证书绑定的域名(你的域名)。
    server_name clover.fit; 
    # dist是我配置的静态资源访问的路径,如果你没有修改,你的应该是html文件夹
    root dist; 
    index index.html index.htm;
    #需要将clover.pem替换成已上传的证书文件的名称(就是你上传的那两个文件名称)。
    ssl_certificate cert/clover.pem;  
    #需要将clover.key替换成已上传的证书密钥文件的名称(同上)。
    ssl_certificate_key cert/clover.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; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / { 
   
        root dist;  #站点目录。
        index index.html index.htm;
    }
}

步骤4(可选):配置HTTP强制跳转HTTPS

如果您希望所有的HTTP访问自动跳转到HTTPS页面,则可以在需要跳转的HTTP站点下添加以下rewrite语句。

server { 
   
        listen 80;
        #需要将clover替换成证书绑定的域名。
        server_name clover.fit; 
        # 将所有HTTP请求通过rewrite指令重定向到HTTPS。
        rewrite ^(.*)$ https://$host$1; 
        location / { 
   
            index index.html index.htm;
        }
    }

最后,贴上http片段中的完整代码

http { 
   
    include       mime.types;
    default_type  application/octet-stream;
    
    sendfile        on;
    
    keepalive_timeout  65;

    server { 
   
        listen 80;
        #需要将clover.fit替换成证书绑定的域名。
        server_name clover.fit; 
        #将所有HTTP请求通过rewrite指令重定向到HTTPS。
        rewrite ^(.*)$ https://$host$1; 
        location / { 
   
            index index.html index.htm;
        }
    }
server { 
   
        listen       443 ssl;
        server_name  www.clover.fit;

        root dist;
        index index.html index.htm;

        ssl_certificate cert/clover.pem;
        ssl_certificate_key cert/clover.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; #表示使用的TLS协议的类型。
        ssl_prefer_server_ciphers on;

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

修改完成后,按Esc 键、输入 :wq!并按Enter 键,保存修改后的配置文件并退出编辑模式。

执行以下命令,重启Nginx服务。

[root@clover conf]# cd ../
[root@clover nginx]# cd sbin/ #进入Nginx服务的可执行目录。
[root@clover sbin]# ./nginx -s reload #重新载入配置文件。
#查看nginx是否正在运行,若正在运行,则kill掉
[root@clover sbin]# ps -ef | grep nginx
root     18222     1  0 14:53 ?        00:00:00 nginx: master process ./nginx
nobody   23728 18222  0 16:39 ?        00:00:00 nginx: worker process
root     23737 22684  0 16:39 pts/3    00:00:00 grep --color=auto nginx
#此时表示nginx正在运行,使用kill 命令kill掉
[root@clover sbin]# kill -9 18222
[root@clover sbin]# kill -9 23728
#再次查看
[root@clover sbin]# ps -ef | grep nginx
root     23737 22684  0 16:39 pts/3    00:00:00 grep --color=auto nginx
#使用./nginx 启动nginx
[root@clover sbin]# ./nginx 
  • 注意:
    如果重启Nginx服务时收到报错,您可以使用以下方法进行排查:

  • 收到the "ssl" parameter requires ngx_http_ssl_module报错:您需要重新编译Nginx并在编译安装的时候加上--with-http_ssl_module配置。

  • 收到"/cert/3970497_pic.certificatestests.com.pem":BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/cert/3970497_pic.certificatestests.com.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)报错:您需要去掉证书相对路径最前面的/。例如,您需要去掉/cert/cert-file-name.pem最前面的/,使用正确的相对路径cert/cert-file-name.pem

步骤5:开放HTTPS访问及验证

验证证书是否安装成功。
在验证的过程中,你可能会遇到无法访问,此时,你需要想想,你的服务器安全组是否开放了80和443端口,如果没有开放,需要去服务器控制台进行开发。

在这里插入图片描述在这里插入图片描述
点击手动添加,进行添加443端口

在这里插入图片描述
此时,如果你的服务器(我的是CentOS7.6)防火墙开启了,也要放开80和443端口,如果没开启,就不用看这一步

#查看防火墙状态
[root@clover root]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-09-22 19:51:54 CST; 2 weeks 1 days ago
     Docs: man:firewalld(1)
 Main PID: 12517 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─12517 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Sep 22 19:51:53 clover systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 22 19:51:54 clover systemd[1]: Started firewalld - dynamic firewall daemon.
#此时就代表防火墙开启了

#查看已开放的端口
[root@clover root]# firewall-cmd --list-ports
80/tcp 8080/tcp 3306/tcp 22/tcp 6379/tcp 1001/tcp 1002/tcp 443/tcp
#我的80和443都已经开放了,如果你的没有开放,执行下面的命令
[root@clover root]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@clover root]# firewall-cmd --zone=public --add-port=443/tcp --permanent
#重新载入防火墙,2种方式
[root@clover root]# firewall-cmd --reload
[root@clover root]# systemctl restart firewalld

此时,再进行验证

证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。

https://www.clover.fit   #需要将www.clover.fit替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

不同类型证书安装成功后的效果不同,具体如下:

  • DV SSL、OV SSL数字证书部署在服务器上后,您的浏览器访问网站时,将会展示以下效果。DV/OV证书安装效果图
  • EV SSL数字证书部署在服务器上后,您的浏览器访问网站时,将会展示以下效果。EV证书安装效果图
    如果验证时出现访问异常,请参照下表进行排查。
异常现象 可能原因 处理方法
通过HTTPS无法正常访问您的网站。 安装证书的Nginx服务器的443端口未开放或被其他工具拦截。 1.如果您使用的是阿里云ECS服务器,请前往ECS管理控制台的安全组页面,配置开放443端口。关于如何配置安全组,请参见添加安全组规则
2.如果您使用的不是阿里云ECS服务器,请参照对应的服务器安全设置指南,配置开放服务器的443端口。
收到网站提示“您与网站之间的连接未完全安全”。 您的网站代码中调用的是HTTP协议。 您需要在网站代码中把HTTP协议修改为HTTPS协议。
收到网站提示“该网站未根据工信部相关法律进行备案”。 1.您的网站未完成备案,未在接入商处完成备案接入。
2.您的网站内容与备案信息不符、备案信息不准确、网站存在不适宜传播的内容等。
1.如果您使用的是阿里ICP云备案系统,请前往阿里云备案系统进行网站备案。
2.如果您使用的不是阿里云ICP备案系统,请前往备案服务商的系统进行网站备案。

结束

到这里,Nginx配置SSL证书就结束了!

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186376.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • YOLOv5训练自己的数据集(超详细完整版)[通俗易懂]

    YOLOv5训练自己的数据集(超详细完整版)[通俗易懂]一.Requirements本教程所用环境:代码版本V3.0,源码下载地址:https://github.com/ultralytics/yolov5.gitPytorch:1.6.0Cuda:10.1Python:3.7官方要求Python>=3.8andPyTorch>=1.6.二.准备自己的数据集(VOC格式)1.在yolov5目录下创建paper_data文件夹(名字可以自定义),目录结构如下,将之前labelImg标注好的xml文件和图片放到对应目录下paper_

  • 小弟博客_博客来网址

    小弟博客_博客来网址原来位于Google上的博客在国内基本不能访问了,现在找了个新家,准备发布一些我这些年来编写的东西,主要集中在算法研究和程序设计上,语言主要是.NET(C#)和Delphi,当然,其它软件开发、算法相关的许多东西也会陆续加入,例如:JavaScript、XML、Web技术等等,另外也会有极少量的与IT行业不相关的东西。旧的不去,新的不来,旧博客关了也好,新博客总算是中文的…

  • Qt Quick中的信号与槽

    在QML中,在QtQuick中,要想妥善地处理各种事件,肯定离不开信号与槽,本博的主要内容就是整理Qt中的信号与槽的内容。1.链接QML类型的已知信号QML中已有类型定义的信号分为两类:一类

    2021年12月29日
  • html静态网页生成器_网页后端制作

    html静态网页生成器_网页后端制作一、文章编辑页制作当首页制作完毕后,需要显示内容就需要有文章数据,此时我们创建一个文章编辑页增加对应的数据。那么我们创建一个页面,命名为文章发布页:接着我们查看标题部分:此部分为左右两边,左侧为标题提示输入和一个标题的文本输入框,右侧是一个发布按钮,此时我们创建左右两行:由于左右两行需要在同一行显示,那么此时我们就需要设置左右两行的宽度为50%,使其不占满超过100%的宽度居于一行,并且需要设置高度为包裹:接着在左侧添加一个文本以及一个输入框:那么右侧就是一个发布按钮,发布按钮更改

    2022年10月20日
  • 使用javascript实现数组截取

    使用javascript实现数组截取前言:在开发项目的过程中遇到这样的一个问题,就是需要对接口查询出来的数据两个两个的进行截取,之后分别两个两个的放入数组中,再把这些数组放到一个新数组中,实现方法如下:方法一:functionarrayChunk(array,size){ letdata=[]; for(leti=0;i<array.length;i+=size){ data.push(array.slice(i,i+size)) } returndata;}arrayChunk([{i

  • Java实现BASE64编解码

    Java实现BASE64编解码

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号