Nginx+SSL搭建 HTTPS 网站

下面详细讲解如何使用Nginx和SSL搭建HTTPS网站:

确认SSL证书

在开始搭建HTTPS网站之前,需要确保已经拥有有效的SSL证书。若没有,可以在任何一家可靠的证书提供商处购买。购买完证书后,需要将证书下载到本地存储。

安装Nginx

首先,需要安装Nginx,可以在终端中使用以下命令安装:

sudo apt-get update 
sudo apt-get install nginx 

配置SSL证书

安装完Nginx后,需要配置SSL证书。首先需要将SSL证书文件上传到服务器上,然后在Nginx的配置文件中进行配置。以下为示例配置文件:

server {
    listen              80;
    server_name         example.com www.example.com;
    return301 https://www.example.com$request_uri;
}


server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     /path/to/cert.pem;
    ssl_certificate_key /path/to/privkey.pem;

    root                /var/www/example;
    index               index.html;

    location / {
        try_files       $uri $uri/ =404;
    }
}

需要修改配置文件中的以下内容:

  • server_name: 改为自己的域名。
  • ssl_certificate: 替换成服务器上的证书文件路径。
  • ssl_certificate_key: 替换成服务器上的私钥文件路径。
  • root和index: 修改成自己网站的根目录和默认主页。

测试网站

修改完配置文件后,需要重启Nginx并测试网站是否正常。在终端中依次输入以下命令:

sudo systemctl restart nginx 
sudo systemctl status nginx 

如果没有出现错误信息,表示Nginx已成功重启。然后在浏览器中输入网站的URL,即可访问网站。如果浏览器中出现绿色的锁图标,且网站URL以https开头,则证明HTTPS已经成功启用,说明搭建HTTPS网站已经完成。

示例说明

下面给出两个实际的示例,以帮助更好地理解搭建HTTPS网站的过程:

示例1

以Ubuntu 18.04系统为例,使用Let's Encrypt证书来搭建HTTPS网站。

  1. 安装Certbot客户端,用于自动获取、安装和配置Let's Encrypt证书。
sudo apt-get update 
sudo apt-get install software-properties-common 
sudo add-apt-repository ppa:certbot/certbot 
sudo apt-get update 
sudo apt-get install certbot 
  1. 获取证书并完成配置,使用以下命令即可:
sudo certbot certonly --webroot --agree-tos --email admin@example.com --webroot-path=/var/www/example -d www.example.com
  1. 修改Nginx的配置文件。

在/etc/nginx/sites-available/目录下,新建一个新的配置文件,例如example.com.conf,并且添加以下内容:

server {
    listen              80;
    server_name         example.com www.example.com;

    location /.well-known/acme-challenge/ {
        root            /var/www/example;            
    }

    location / {
        return          301 https://www.example.com$request_uri;
    }
}

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     /etc/letsencrypt/live/www.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/www.example.com/chain.pem;

    root                /var/www/example;
    index               index.html;

    location / {
        try_files       $uri $uri/ =404;
    }
}

需要将example.com.conf文件中的server_name、ssl_certificate、ssl_certificate_key和ssl_trusted_certificate替换成自己的域名和证书路径。

  1. 重启Nginx服务器和测试网站。
sudo systemctl restart nginx 
sudo systemctl status nginx 

在浏览器中输入网站URL,如果正常访问,说明HTTPS搭建成功。

示例2

以CentOS 7系统为例,使用自签名证书来搭建HTTPS网站(不推荐使用自签名证书)。

  1. 生成私钥和自签名证书。
sudo openssl req -x509 -nodes -days365 -newkey rsa:2048 -keyout /etc/pki/tls/private/mykey.key -out /etc/pki/tls/certs/mycert.cert

在上述命令中,需要填写一些证书信息,例如国家、省份、城市、组织机构名、主题等。

  1. 修改Nginx的配置文件。

在/etc/nginx/conf.d/目录下,新建一个新的配置文件,例如example.com.conf,并添加以下内容:

server {
    listen              80;
    server_name         example.com www.example.com;
    return              301 https://$server_name$request_uri;
}

server {
    listen              443 ssl;
    server_name         example.com www.example.com;
    root                /var/www/example;
    index               index.html;

    ssl_certificate     /etc/pki/tls/certs/mycert.cert;
    ssl_certificate_key /etc/pki/tls/private/mykey.key;

    location / {
        try_files       $uri $uri/ =404;
    }
}

需要将example.com.conf文件中的server_name、ssl_certificate和ssl_certificate_key替换成自己的域名和证书路径。

  1. 重启Nginx服务器和测试网站。
sudo systemctl restart nginx 
sudo systemctl status nginx 

在浏览器中输入网站URL,如果正常访问,说明HTTPS搭建成功。

以上就是如何使用Nginx和SSL搭建HTTPS网站的完整攻略和两个示例说明,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx+SSL搭建 HTTPS 网站 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • linux nginx常见问题及优化,压力测试,tomcat服务器优化

    nginx常见问题 nginx优化全局配置优化[root@web2 nginx]# vim conf/nginx.confuser nobody;worker_processes 1;(与cpu核心数一致)worker_rlimit_nofile 3000;(最大打开文件数量)error_log /var/log/nginx.error_log info;(…

    Nginx 2023年4月10日
    00
  • nginx 负载均衡配置

              worker_processes 2; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; # upstream 配置一组后端服务器, # 请求转发到upstream后,nginx按策略将…

    Nginx 2023年4月10日
    00
  • 在Nginx上配置多个站点的方法

    在Nginx上配置多个站点需要完成以下步骤: 1.创建站点目录 在服务器上创建每个站点的目录,例如,假设我们要创建两个站点,一个是example1.com,另一个是example2.com。我们可以在服务器上的/var/www目录下创建两个目录,分别命名为example1.com和example2.com: sudo mkdir /var/www/examp…

    Nginx 2023年5月16日
    00
  • nginx+lua_nginx+GraphicsMagick生成实时缩略图

    安装graphi magic wget http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.16/GraphicsMagick-1.3.16.tar.gz/download ./configure –prefix=/usr/local/GraphicsMagick-…

    Nginx 2023年4月12日
    00
  • nginx跨域配置(windos走过的坑)

    nginx下载地址: http://nginx.org/en/download.html 红圈区域是稳定版 解压之后放在文件夹就可以了。 解压后:  注意:这里面有个nginx.exe文件,一般情况下双击运行就可以了,但是由于windos部分机型他不支持日志填写,运行后可能无法关闭。建议cmd命令行执行,这样一定会填写日志。 执行命令最重要的三个:(其他关于…

    Nginx 2023年4月11日
    00
  • Nginx一键安装部署静态网页的过程详解

    Nginx一键安装部署静态网页的过程详解 Nginx是一款轻量级的Web服务器,可以快速高效地处理静态资源请求,近年来被越来越多的网站采用。本文将介绍如何使用一键安装脚本快速部署Nginx和静态网页。 部署环境 操作系统:CentOS 7 安装脚本:nginxinstall.sh 网页文件:index.html 一键安装脚本 以下是nginxinstall.…

    Nginx 2023年5月16日
    00
  • 用 Nginx 实现 https 转 http(方便本地调试)

    下载 nginx-1.14.0.zip   配置 conf/nginx.conf server { # 监听8080端口 listen 8080;#不要占用 即将转发的80端口 。或者直接干掉这个server location / { } }     https 转 http   server { listen 443 ssl; # 域名,实际情况下时,将这…

    Nginx 2023年4月13日
    00
  • Nginx启动异常及解决方案:Failed to start SYSV: NGINX is an HTTP(S) server, HTTP(S) reverse proxy

    当我使用systemctl start nginx.service或者service nginx start命令启动nginx,发现启动失败,报错信息如下:     当使用nginx -t却显示OK.查看状态,信息如下:     解决办法: 根据Nginx配置文件查看配置的端口(本文中使用的是80端口),然后根据端口查看端口占用情况。     修改/etc/…

    Nginx 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部