Nginx 实践:同一端口为多个域名配置独立的 SSL 证书

Nginx 支持在同一个监听端口上配置多个虚拟主机(虚拟服务器),并且可以为每个虚拟主机配置不同的域名和证书。通过使用 server 块来实现这一点,每个 server 块可以有自己的域名和 SSL 证书配置。 下面是一个示例配置,展示了如何在同一个监听端口(例如 443 端口)上配置两个不同的域名,并为它们配置不同的 SSL 证书: # 配置第一个域名 server { listen 443 ssl; server_name example1.com; ssl_certificate /path/to/example1.com.crt; ssl_certificate_key /path/to/example1.com.key; location / { root /var/www/example1; index index.html; } } # 配置第二个域名 server { listen 443 ssl; server_name example2.com; ssl_certificate /path/to/example2.com.crt; ssl_certificate_key /path/to/example2.com.key; location / { root /var/www/example2; index index.html; } } 在这个配置中: listen 443 ssl; 指定 Nginx 监听 443 端口,并启用 SSL。 server_name 指定虚拟主机的域名。 ssl_certificate 和 ssl_certificate_key 指定每个域名对应的 SSL 证书和私钥。 location 块内配置了每个域名对应的文档根目录。 这样,当用户访问 https://example1.com 时,Nginx 会使用 example1.com 的证书和配置;当用户访问 https://example2.com 时,Nginx 会使用 example2.com 的证书和配置。 ...

五月 26, 2024 · 1 分钟 · 127 字 · Byter ·  Linux ·  Nginx ·  SSL

在服务器建立SSH隧道实现数据的转发

SSH 隧道是一种安全可靠的数据传输方式,它可以将数据加密并通过 SSH 连接进行转发,从而在不安全的网络环境中实现安全的数据传输。本文将介绍如何在服务器上建立 SSH 隧道,实现数据的转发。 为什么要使用 SSH 隧道? 安全数据传输: SSH 隧道通过加密数据传输,保护数据在网络传输过程中的安全。 绕过网络限制: SSH 隧道可以绕过防火墙等网络限制,访问被屏蔽的网站或服务。 远程访问本地资源: SSH 隧道可以将本地资源转发到远程服务器,实现远程访问本地资源。 建立 SSH 隧道的步骤 安装 SSH 客户端和服务器: 确保服务器和客户端都安装了 SSH 客户端和服务器。 配置 SSH 连接: 在客户端机器上,使用 SSH 命令连接到服务器,并指定端口转发规则。 启动 SSH 隧道: 执行 SSH 命令,启动 SSH 隧道。 验证 SSH 隧道: 使用网络工具验证 SSH 隧道是否成功建立。 示例 flowchart LR ssh1<-->ssh2 subgraph B ssh2-->HTTP服务 end subgraph A curl-->ssh1 end 上图B服务有HTTP服务,但是A不能直接访问到B,但是B可以访问到A。 于是通过B连接到A建立一个远程端口1080转发到本地80端口。 ssh -NfR 1080:localhost:80 -p 1022 -i user.key user@server_ip -N:表示不执行远程命令,只建立隧道。 -f:表示将 SSH 连接放到后台运行。 -R 1080:localhost:80:将远程 1080 端口转发到本地的 80 端口。 -L 1080:localhost:80:将本地 1080 端口转发到服务器的 80 端口。 -i user.key: 采用证书登录是使用 user@server_ip:服务器用户名和 IP 地址。 之后就可以使用SSH隧道访问本地资源了 ...

五月 19, 2024 · 1 分钟 · 124 字 · Byter ·  SSH ·  Linux

Linux修改SSH使用证书登录

由于使用密码方式登录,会有接收到很多尝试爆破的登录连接,考虑禁止SSH用户名密码登录模式,改用证书登录。 生成公钥和私钥 ssh-keygen -t rsa 按照提示生成,提示输入证书密码,可以留空,如果输入了,每次登录还需要输入证书的密码。完成后会在~/.ssh/目录下生成 id_rsa 和 id_rsa.pub 文件。 在服务上将公钥内容添加到 authorized_keys cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 不再服务器生成的 vim ~/.ssh/authorized_keys 检查~/.ssh/authorized_keys文件权限 -rw------- 1 xxx xxx 400 Mar 24 20:10 authorized_keys # 如果权限不对,执行以下命令 chmod 600 ~/.ssh/authorized_keys 这个时候可以尝试使用ssh工具用证书登录,本地登录需要将公钥和私钥都保存在一个文件夹,如果登录没有问题,进入下一步 修改sshd配置文件 在/etc/ssh/sshd_config.d下增加一个配置文件,达到覆盖系统默认的/etc/ssh/sshd_config.d 的目的,因为ssh如果升级,会有被覆盖的风险 vim /etc/ssh/sshd_config.d/60-custom.conf 增加以下内容 PasswordAuthentication no 保存后,重启sshd服务 这个时候原来用密码登录的ssh还能用,别着急关(万一有问题可以急救),再试试证书是否能正常登录,用户名密码登录应该已经不能登录。

四月 6, 2024 · 1 分钟 · 46 字 · Byter ·  Linux ·  SSH