Nginx快速部署SSL证书_2023年10月29日可用

一、目的

复制代码
Nginx快速部署SSL证书
                                       --2023年10月29日可用

二、环境

  • Centos/Ubuntu服务器

  • 前端代码文件夹:

    • 假设为:/root/demo文件夹
  • 域名

  • SSL证书(通过上一篇博客获取,获取其他方式获取到的SSL证书)

    • demo.com.cer
    • demo.com.key

三、步骤

3.1 安装Nginx

官方文档:https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/
CentOS

复制代码
sudo yum install epel-release
sudo yum update
sudo yum install nginx
sudo nginx -v
sudo systemctl restart nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Ubuntu

复制代码
sudo apt-get update
sudo apt install nginx
sudo nginx -v
sudo systemctl restart nginx
sudo systemctl enable nginx
sudo systemctl status nginx

3.2 前端代码

前端代码原先位置:/root/demo -> 移动到nginx默认文件夹/usr/share/nginx/html/

复制代码
cp -r /root/demo/* /usr/share/nginx/html/

3.3 HTTP配置

3.3.1 修改Nginx配置

默认配置为/etc/nginx/nginx.conf

复制代码
nano /etc/nginx/nginx.conf

内容修改如下:

复制代码
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

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

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

3.3.2 重载配置

复制代码
sudo systemctl restart nginx
sudo systemctl status nginx

3.3.3 网站访问

浏览器访问http://demo.com即可看到对应页面。
注:请确保域名解析到服务器IP已完成。(该步骤一般在域名购买供应商那里操作,不同供应商操作步骤不同,这里不再描述,网上直接搜索即可)

3.4 HTTPS配置

需要SSL证书(参考 上一篇文章申请)

3.4.1 获取SSL证书

上一篇获取到文件包含如下,该密钥文件可以部署到nginx,通过https访问

复制代码
demo.com.cer (公钥)
demo.com.key (私钥)

3.4.2 移动SSL证书

移动证书文件到指定路径/etc/pki/nginx/

复制代码
cp demo.com.cer /etc/pki/nginx/
cp demo.com.key /etc/pki/nginx/

3.4.3 修改Nginx配置

复制代码
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

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

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

# Settings for a TLS enabled server.
#
    server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  _;
        root         /usr/share/nginx/html;

        ssl_certificate "/etc/pki/nginx/demo.com.cer";
        ssl_certificate_key "/etc/pki/nginx/demo.com.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on; 
 

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

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

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

}

3.4.5 重载配置

复制代码
sudo systemctl restart nginx
sudo systemctl status nginx

sudo systemctl restart nginx
sudo systemctl status nginx

3.4.6 网站访问

浏览器访问https://demo.com即可看到对应页面。
注:请确保域名解析到服务器IP已完成。(该步骤一般在域名购买供应商那里操作,不同供应商操作步骤不同,这里不再描述,网上直接搜索即可)


  • 注:接单前端代码的服务器部署,私信或者邮件hyh_youxiang@163.com

    • 内容包括完整代码的服务器部署流程

    • 服务器域名的购买(自己提供也可以)

    • 域名映射 + 服务器的前端代码部署 150RMB

    • 也支持:静态页面的书写(如落地页、官方网站、个人简历) 200RMB起步,根据页面和内容多少确定

  • 最后效果: demo.com可访问对应网页

其他

如有问题 欢迎提出
如有疑问 欢迎留言
如有作用 欢迎点赞
如有失效 欢迎留言
个人邮箱:hyh_youxiang@163.com
2023年10月 可用

相关推荐
AOwhisky4 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
c238564 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
李小白664 小时前
第四天-WEB服务器基本原理,IIS服务
运维·服务器·前端
2401_834636995 小时前
Nginx 从入门到实战:静态 / 动态站点、PHP 部署与反向代理全解析
运维·nginx·php
aosky6 小时前
一台电脑配置多个 SSH Key 对应不同的 GitHub 账号
运维·ssh·github
云登指纹浏览器6 小时前
WebDriver反检测技术详解:如何让自动化脚本看起来像真实浏览器
运维·自动化·跨境电商
xmtxz7 小时前
计算机网络基础课程学习心得:从理论抽象到硬核实战的进阶之路
运维·学习
RisunJan7 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维
回忆2012初秋8 小时前
【Nginx】优雅地走进高性能 Web 服务器世界(1)
服务器·前端·nginx
信创工程师-小杨8 小时前
Linux内网环境如何解决依赖的问题
linux·运维·服务器