luodiab 的个人博客 luodiab 的个人博客

每个圣人都有无可告人的过去 每个罪人都有洁白无瑕的未来

目录
Nginx安装ssl证书
/      

Nginx安装ssl证书

一、前言

前些天我在服务器上下载了 nginx 并启动访问成功,可是今天我觉得访问的时候没有那个小锁很难受,所以,今天我们来看看如何给 nginx 安装ssl证书,开启https访问。

二、安装流程

1、环境准备

  1. 准备一份 ssl 证书,因为我本人是在阿里云申请的免费证书,所以我在阿里云下载了一份
    01Nginx安装ssl证书.jpg
  2. 在 nginx 安装目录的 conf 目录下新建一个 cert 文件夹,并将 ssl 证书传上去
    02Nginx安装ssl证书.jpg

2、修改 nginx.conf 文件

  1. 执行以下命令,打开配置文件

    vim /usr/local/nginx/conf/nginx.conf
    
  2. 找到 # HTTPS server 注释下的 server 模块,删除行首注释符号#,并根据如下内容进行修改

    server {
         #HTTPS的默认访问端口443。
         #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
         listen 443 ssl;
         
         #填写证书绑定的域名
         server_name <yourdomain>;
    
         #填写证书文件名称
         ssl_certificate cert/<cert-file-name>.pem;
         #填写证书私钥文件名称
         ssl_certificate_key cert/<cert-file-name>.key;
    
         ssl_session_cache shared:SSL:1m;
         ssl_session_timeout 5m;
    
         #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
         #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
         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 / {
             #这个配置会将https请求代理到你的http请求
            proxy_pass http://<yourdomain>:跳转的端口/;
        }
    }
    

    下面是我的具体配置(有需要的小伙伴可以参考一下哦):

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        server {
            listen       8089;
            server_name  xxx.xxxxx.top;
        
            location / {
                root   html;
                index  index.html index.htm;
                #proxy_pass http://xxx.xxxxx.top;
            }
        
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        
        }
    
        # HTTPS server
         server {
             listen       443 ssl;
             server_name  xxx.xxxxx.top;
    
         
             ssl_certificate      /usr/local/nginx/conf/cert/xxx.xxxxx.top.pem;
             ssl_certificate_key  /usr/local/nginx/conf/cert/xxx.xxxxx.top.key;
         
             ssl_session_cache    shared:SSL:1m;
             ssl_session_timeout  5m;
         
             ssl_ciphers HIGH:!aNULL:!MD5;
             ssl_prefer_server_ciphers  on;
    
         
             location / {
                 proxy_pass http://xxx.xxxxx.top:8089/;
             }
         }
    
    }
    

    然后我们保存并退出。

3、重启 nginx

  1. 我们输入以下命令查看 nginx 的进程

    ps -ef | grep nginx
    

    03Nginx安装ssl证书.jpg

  2. 再输入以下命令结束 nginx 的进程,然后我们就能看到结束了nginx进程

    kill -QUIT 进程号
    

    04Nginx安装ssl证书.jpg

  3. 输入以下命令检查配置文件的信息,记得路径替换成自己的哦,如果出现以下结果的话,就说明文件格式正确,没有格式错误了。

    nginx -tc /usr/local/nginx/conf/nginx.conf
    

    05Nginx安装ssl证书.jpg

  4. 输入以下命令重启nginx,这个命令是指定配置文件启动,记得替换成自己的路径信息哦

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    
  5. 我们可以再次输入以下命令查看 nginx 是否启动成功

    ps -ef | grep nginx
    

4、https访问nginx

在浏览器中输入 https://域名 ,访问nginx

06Nginx安装ssl证书.jpg

现在我们就能以 https 的方式访问 nginx 啦!

三、总结

以上就是我个人安装在 Linux 环境下 Nginx 安装 ssl 证书 的整个流程,写完笔记之后,感觉更加流畅了,如果有什么问题,可以将问题发我邮箱 luodiab@126.com,欢迎各位的意见。


标题:Nginx安装ssl证书
作者:luodiab
地址:https://www.luodiab.top/articles/2023/08/09/1691549129393.html