码界工坊

htykm.cn
人生若只如初见

Nginx SSL在Debian上的部署策略

在Debian上部署Nginx SSL的过程可以分为以下几个步骤:

1. 安装OpenSSL

首先,确保你的系统上已经安装了OpenSSL。如果没有安装,可以使用以下命令进行安装:

sudo apt-get updatesudo apt-get install openssl -y

2. 生成私钥和证书签名请求(CSR)

接下来,生成一个2048位的RSA私钥和一个CSR。私钥和CSR的名称通常与你的域名相同。

openssl genpkey -algorithm rsa -out private.key -aes256openssl req -new -key private.key -out csr.csr

在生成CSR的过程中,系统会提示你输入一些信息,如国家、省份、城市、组织和姓名等。

3. 生成自签证书

使用私钥和CSR生成自签证书。证书的有效期默认为365天。

openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt

4. 验证证书

你可以使用以下命令来验证生成的证书内容:

openssl x509 -in certificate.crt -text -noout

5. 配置Nginx使用SSL证书

将生成的证书和私钥文件放置在Nginx的配置目录中(通常是/etc/nginx)。然后编辑Nginx的配置文件,添加以下内容:

server {     listen 443 ssl;    http2 on;    listen [::]:443 ssl;    server_name example.com;    ssl_certificate /path/to/certificate.crt;    ssl_certificate_key /path/to/private.key;    # 其他Nginx配置...}

example.com替换为你的实际域名,并将/path/to/certificate.crt/path/to/private.key替换为实际的证书和私钥文件的路径。

6. 自动续签SSL证书

为了确保SSL证书在到期前自动续签,可以使用acme.sh脚本。以下是配置步骤:

  • 创建必要的目录:
mkdir -p /etc/acme/{ config,live,certs}mkdir -p /var/www/acme/.well-known/acme-challenge
  • 修改目录权限:
chown -R username:username /var/www /etc/acme

username替换为运行acme.sh的用户名。

  • 克隆acme.sh仓库:
git clone https://github.com/acmesh-official/acme.sh.git

或者下载并解压压缩包。

  • 安装acme.sh
./acme.sh --install -m your@email.com --home /etc/acme --config-home /etc/acme/config --cert-home /etc/acme/certs

your@email.com替换为你的实际电子邮箱地址。

  • 配置acme.sh自动更新:
/etc/acme/acme.sh --config-home '/etc/acme/config' --upgrade --auto-upgrade
  • 添加Nginx配置给acme.sh
location /.well-known/acme-challenge/ {     alias /var/www/acme/.well-known/acme-challenge/;}
  • 修改需要添加SSL证书的域名Nginx配置文件:
server {     listen 80;    listen [::]:80;    server_name example.com;    include /etc/acme/acme.conf;    location / {         return 301 https://$server_name$request_uri;    }}

example.com替换为你的实际域名。

  • 重新加载Nginx配置:
sudo nginx -s reload
  • 使用acme.sh申请SSL证书:
/etc/acme/acme.sh --issue --home /etc/acme --config-home /etc/acme/config --cert-home /etc/acme/certs -d example.com -w /var/www/acme --server letsencrypt

example.com替换为你的实际域名。

  • 查看定时任务是否添加成功:
crontab -e

如果没有相关acme.sh的定时任务,可以手动添加上:

0 1 * * * "/etc/acme/acme.sh" --cron --home "/etc/acme" --config-home "/etc/acme/config" >/dev/null
  • 申请成功后,再次修改对应域名的Nginx配置文件,使其使用最新的SSL证书:
ssl_certificate /etc/acme/certs/example.com_ecc/fullchain.cer;ssl_certificate_key /etc/acme/certs/example.com_ecc/example.com.key;
  • 添加重新加载Nginx配置文件的定时任务:
0 1 * * * sudo nginx -s reload

以上就是在Debian系统上部署Nginx SSL的基本策略。通过这些步骤,你可以为你的网站启用HTTPS,并确保SSL证书在到期前自动续签。

未经允许不得转载 » 本文链接:http://htykm.cn/html/796e599198.html

推荐文章

  • centos context如何日志分析

    在CentOS系统中进行日志分析,通常涉及以下几个步骤:日志查看使用journalctl命令:journalctl是CentOS 7及更高版本中用于查看和管理systemd日志的工具。它可以显示所有日 ...

  • KZ域名好不好?KZ域名介绍

    KZ域名好不好?.KZ域名为哈萨克斯坦国家顶级域名(ccTLD)后缀,于1994年分配使用。注册管理局:KazNIC,该域名资源丰富,用途宽广,应用场景多样,涵义价值高,具有收藏价值与投资价值,是您商 ...

  • 网址申请注册流程

    网址怎么申请注册?网址注册要经过哪些步骤?下面是网址申请注册流程介绍。网址申请注册流程:1、准备申请资料com域名无需提供身份证、营业执照等资料,cn域名已开放个人申请注册,所以申请则需要提供身份证或 ...

  • 怎么解析域名?域名解析方法指导

    什么是域名解析?用户购买域名后要怎么解析域名?本文是有关域名解析方法的知道,希望可以帮助到想要解析域名却不知道方法的用户。1、域名解析是什么意思?域名解析就是需要我们手动把域名地址和IP地址的对应关系 ...

  • Node.js在Debian上的内存管理怎样

    Node.js在Debian上的内存管理是一个复杂但关键的话题,涉及到如何有效配置和优化内存使用,以确保应用的稳定性和性能。以下是对Node.js在Debian上内存管理的详细分析:Node.js内存 ...

  • 网站用什么域名好?小白如何选择好域名?

    网站用什么域名好?很多公司在选择域名方面都非常随便,以至于跟自己品牌相关的域名都被其他人抢注了,那么一家企业想要注册一个好域名到底需要怎么做呢?下面我们就带大家看看网站域名怎么选。1、选择企业名称拼音 ...

  • 什么是企业邮箱域名呢?有什么用?

    什么是企业邮箱域名呢?有什么用?域名用来表示一个企业或组织在网上的地址,便于快速查找。例如“dns110.com”就是一个域名。企业邮箱的域名通常是绑定企业官网的域名,企业域名邮箱就是以企业自有域名做 ...

  • 注册.tech域名详细流程

    .tech域名是一个新通用顶级域名,英文上具有“科技”“技术”的含义,它的含义对应于各种科技公司来说,是非常好的选择。那么.tech域名怎么注册呢?.tech域名去哪注册?其实注册.tech域名也是比 ...