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日

相关文章

  • centos环境下nginx高可用集群的搭建指南

    下面就给您详细讲解在CentOS环境下搭建Nginx高可用集群的攻略。 1. 负载均衡器配置 在搭建Nginx高可用集群之前,需要先搭建一台负载均衡器,这里我们以HAproxy为例。 1.1 安装HAproxy 在CentOS环境下,可以使用以下命令安装HAproxy。 yum install haproxy -y 安装完成后,可以使用以下命令查看HApro…

    Nginx 2023年5月16日
    00
  • centos7下搭建nginx+php7.1+mariadb+memcached+redis

    一.环境准备 1.首先介绍一下环境,以及我们今天的主角们 我用的环境是最小化安装的centos7,mariadb(江湖传言mysql被oracle收购后,人们担心像java一样毁在oracle手上于是成了新的分支,但是还是像mysql一样用), php7.1.0(版本无所谓,都是7版本),nginx1.10(我们安装的是稳定版而没有一味的追求新),memca…

    Nginx 2023年4月16日
    00
  • Docker+Nginx+Tomcat实现负载均衡

    环境检测: 1、Docker没有安装的小伙伴请查看https://www.cnblogs.com/niuniu0108/p/12372531.html 2、没有创建Nginx容器的小伙伴请查看https://www.cnblogs.com/niuniu0108/p/12372709.html 3、没有创建Tomcat容器的小伙伴请查看https://www.…

    Nginx 2023年4月12日
    00
  • nginx之正向代理

    1、概述 nginx的正向代理,只能代理http、tcp等,不能代理https请求。有很多人不是很理解具体什么是nginx的正向代理、什么是反向代理。下面结合自己的使用做的一个简介: 1)正向代理:      所谓正向代理就是内网服务器主动要去请求外网的地址或服务,所进行的一种行为。内网服务—访问—>外网 2)反向代理:     所谓反向代理就…

    Nginx 2023年4月12日
    00
  • Nginx配置SSL报错 nginx: [emerg] unknown directive “ssl”

        出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./configure –with-http_ssl_module 如果报错 ./configure: error: SSL modules require the OpenSSL library.则执行 yum -y install openssl openssl-devel ./con…

    Nginx 2023年4月11日
    00
  • 详解nginx如何配置HTTPS

    以下是详解nginx如何配置HTTPS的完整攻略。 第一步:准备工作 在配置HTTPS前,需要先准备好以下内容: 一张签名过的SSL证书。 一份支持SSL的nginx安装文件。 第二步:安装SSL证书 将得到的SSL证书的两个文件:.crt和.key文件上传到服务器的指定目录下,我们这里用/etc/nginx/cert/目录作为例子。 第三步:修改nginx…

    Nginx 2023年5月16日
    00
  • CentOS系统rpm安装Nginx和配置

    下面是 CentOS 系统 rpm 安装 Nginx 和配置的完整攻略。 系统要求 在开始安装之前,请确保你的 CentOS 系统版本是 7 或以上,并且已经安装了 EPEL 仓库。 安装 Nginx 使用以下命令安装 Nginx: sudo yum install epel-release sudo yum install nginx 安装完成后,使用以下…

    Nginx 2023年5月16日
    00
  • 如何配置Nginx的HTTP2协议?

    配置NGINX的HTTP2协议需要以下步骤: 第一步:安装支持HTTP2协议的OpenSSL 首先需要安装支持HTTP2协议的OpenSSL版本。在Ubuntu系统中,可以使用以下命令进行安装: sudo apt-get install libssl-dev 第二步:安装Nginx 在安装Nginx之前,需要确认已经安装了编译Nginx所需的依赖库。在Ubu…

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