1. 普通站点开启SSL加密并强制使用HTTPS

多一层加密总没错

  • SSL证书可以用Let's Encrypt生成,记得打开强制HTTPS
    生成证书

2. 禁止使用IP访问站点

配合整站CDN可以避免暴露服务器IP,保护服务器安全

  1. 添加一个静态站点,域名解析可以不加
    添加站点

  2. 设置为默认站点
    默认站点

  3. 删除站点根目录下的404.htmlindex.html,用不着。

  4. 打开 【站点设置->SSL】创建一个自签名SSL证书

    因为这个网站以后无法被访问,没必要使用正常的证书,所以使用自签证书以便于接管443端口的流量
    (不然使用https://IP仍然能访问到你的网站,因为没有证书默认不能接管443端口的流量)

  • 可以使用openssl生成,也可以在线生成
  • 生成以后选择其他证书,把自签证书粘贴进去,强制HTTPS没必要开
    设置证书
  1. 打开 【站点设置->配置文件】
  • 在如图位置加上return 444;
    return 444

    444代表服务器无响应,实际上浏览器也不会收到任何内容

  1. 效果
  • 80端口HTTP协议:
    HTTP
  • 443端口HTTPS协议:
    HTTPS

    这样就避免了他人用恶意的域名解析你的网站,IP访问和非绑定的域名都不会得到响应,隐匿程度++

3. 反代面板,使用SSL加密,禁用面板端口

虽然面板也可以使用自签证书,但是……(我就是爱折腾)

  1. 添加一个静态站点,并设置域名解析
    添加站点

  2. 打开【站点设置->SSL】添加证书

  • SSL证书可以用Let's Encrypt生成,记得打开强制HTTPS
    生成证书
  1. 打开【站点设置->反向代理】
  • 添加一条反代规则,【目标URL】填http://127.0.0.1:[面板端口]记得修改成当前使用的端口,默认是8888
    反向代理
  1. 关闭面板自带的BasicAuth认证(提示信息会暴露服务器IP)
  • 码掉的是服务器的IP,话说就不能自定义消息内容的吗
    码掉的是IP
  • 关闭自带的BasicAuth认证
    BasicAuth认证已关闭
  1. 创建用户名-密码文件
  • 命令行下输入,最后一行的chrxw_com可以自己取名,记得把下面的chrxw_com改成一样就行。
    yum -y install httpd-tools
    cd /www/server/nginx
    mkdir basicauth
    chmod 755 basicauth
    cd basicauth
    htpasswd -c chrxw_com [BasicAuth用的用户名,不是宝塔面板的用户名]
  • 输入密码,生成密码文件
    输入密码
  • 修改文件权限
    chmod 644 chrxw_com

    文件名可以自己修改,下面的路径也改成对应的就行

  1. 打开【站点设置->反向代理->配置文件】
  • 添加以下内容到红框处
    #提示消息可以自定义,但是使用中文和特殊符号貌似会乱码
    auth_basic "need to login in first";
    auth_basic_user_file /www/server/nginx/basicauth/chrxw_com;
    autoindex on;

    修改后

  1. 绑定面板IP和域名

    请先确保你能使用设定的域名访问宝塔面板

    请先确保你能使用设定的域名访问宝塔面板

    请先确保你能使用设定的域名访问宝塔面板

    如果不行说明有步骤错了请从头来过

  • 域名填刚刚创建的站点的域名,IP填127.0.0.1,即只允许本机访问
    绑定IP和域名

    因为设置了反向代理,所以可以使用域名访问面板
    如果使用IP:端口来访问宝塔面板会提示IP未被授权

  1. 关闭宝塔面板端口
  • 查看开放的端口
    firewall-cmd --list-all
  • 删除面板端口
    firewall-cmd --zone=public --remove-port=[面板端口]/tcp --permanent
    firewall-cmd --zone=public --remove-port=[面板端口]/udp --permanent
  • 重载防火墙规则
    firewall-cmd --reload

    开放端口-1,安全性+1

最后修改:2019 年 11 月 27 日
Null