标签 https 下的文章

在没有域名只有IP地址的情况下,实现HTTPS访问是可能的,但需要通过一系列步骤来确保安全性和可访问性。以下是实现这一目标的详细步骤:

一、确认公网IP地址

首先,确保你拥有一个固定的公网IP地址。公网IP地址是互联网上的基本寻址方案,用于唯一标识互联网上的计算机或服务器,是实现外部直接访问的前提条件。动态IP地址可能不适合此场景,因为它们会频繁改变,导致SSL证书失效。

二、申请IP地址SSL证书

公网IP证书申请入口

选择证书颁发机构(CA)

打开JoySSL官网,写注册码230970,获取大额优惠跟技术支持。


准备申请材料:

准备好对IP地址的所有权或管理权限的证明,因为申请过程中通常需要验证你对IP的控制权。

完成验证流程:

按照CA的要求完成验证流程,这可能包括通过文件验证、邮箱验证或其他方式证明你对IP地址的控制权。

购买证书:

购买合适的证书类型,如DV(域名验证)或OV(组织验证)证书。需要注意的是,虽然传统上IP地址SSL证书可能更多是针对企业或组织机构的,但近年来个人用户也可能有条件申请,具体需咨询CA。

三、安装SSL证书

下载证书:
一旦申请被批准,从CA处下载你的SSL证书文件和中间证书。

上传证书:
将证书文件和私钥上传至你的Web服务器软件上,如Apache、Nginx或IIS。

配置服务器:
在服务器配置中,将IP SSL证书绑定到特定的公网IP地址上,而非传统域名。在Nginx等服务器软件的配置文件中,可以指定IP地址作为server_name。
确保服务器配置正确监听HTTPS端口,并正确处理HTTPS请求。
如果需要,配置端口转发,确保即使使用非标准端口,HTTPS连接也能正确建立。

  1. 物理机直接安装 ubuntu, 所有应用都部署在 docker
  2. ssh 只允许密钥登录, 禁止 root 用户登录
  3. 所有访问( http, tcp)都通过 nginx 代理, ufw 只暴露固定的几个端口, nginx 开启 https 证书
  4. nginx 配置 geolite2, 禁止任何 国外 ip 访问, 异常访问基本都是国外 ip
  5. fail2ban 自动封禁所有 nginx 日志里面国外 ip
  6. 不安装 1panel,宝塔等任何 web 管理工具, 直接 ssh 到机器上命令行管理

分享下我的 nginx 配置

load_module "modules/ngx_http_geoip2_module.so";
load_module "modules/ngx_stream_geoip2_module.so";

worker_processes 4;

error_log /var/log/nginx/nginx_error.log;
error_log /var/log/nginx/nginx_error.log notice;
error_log /var/log/nginx/nginx_error.log info;

pid /var/log/nginx/nginx.pid;

events {
    worker_connections 1024;
}


http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    geoip2 /etc/nginx/geoip/GeoLite2-Country.mmdb {
      auto_reload 24h;
      $geoip_country_code  default=Unknown source=$remote_addr country iso_code;
      $geoip_country_name  country  names  en;
    }
    geoip2 /etc/nginx/geoip/GeoLite2-City.mmdb {
      auto_reload 24h;
      $geoip_city   default=Unknown city names en;
    }

    map $geoip_country_code $allowed_country {
        default no;
        CN yes;
    }

    map $remote_addr $allowed {
        default $allowed_country;
        127.0.0.1 yes;
        ~^192\.168\.\\d+\.\\d+$ yes;
        ~^172\.16\.0\.\\d+$ yes;
        ~^172\.17\.\\d+\.\\d+$ yes;
    }

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' "";
    }

    log_format json_analytics escape=json '{'
    '"timestamp": "$msec", ' # request unixtime in seconds with a milliseconds resolution
    '"request_id": "$request_id", ' # the unique request id
    '"request_length": "$request_length", ' # request length (including headers and body)
    '"body_bytes_sent": "$body_bytes_sent", '
    '"remote_addr": "$remote_addr", ' # client IP
    '"time_iso8601": "$time_iso8601", '
    '"request_uri": "$request_uri", ' # full path and arguments if the request
    '"code": "$status", ' # response status code
    '"http_host": "$http_host", ' # the request Host: header
    '"server_name": "$server_name", ' # the name of the vhost serving the request
    '"request_time": "$request_time", ' # request processing time in seconds with msec resolution
    '"upstream": "$upstream_addr", ' # upstream backend server for proxied requests
    '"request_method": "$request_method", ' # request method
    '"allowed": "$allowed", '
    '"geoip_country_code": "$geoip_country_code", '
    '"geoip_country_name": "$geoip_country_name", '
    '"geoip_city": "$geoip_city"'
    '}';

    access_log /var/log/nginx/access.log json_analytics;
    error_log /var/log/nginx/error.log warn;

    set_real_ip_from 0.0.0.0/0;
    real_ip_header X-Real-IP;
    real_ip_recursive on;

    sendfile on;
    server_tokens off;
    keepalive_timeout 65;

    gzip on;
    gzip_vary on;
    gzip_comp_level 4;
    gzip_min_length 256;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

    proxy_buffering off;
    proxy_buffers 4 128k;
    proxy_buffer_size 256k;
    proxy_busy_buffers_size 256k;



    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:-LOW:!aNULL:!eNULL;

    ssl_certificate /etc/nginx/ssl/fullchain.cer;
    ssl_certificate_key /etc/nginx/ssl/xxx.cc.key;


    include /etc/nginx/conf.d/*.conf;

}


stream {

    geoip2 /etc/nginx/geoip/GeoLite2-Country.mmdb {
      auto_reload 24h;
      $geoip_country_code  default=Unknown source=$remote_addr country iso_code;
      $geoip_country_name  country  names  en;
    }
    geoip2 /etc/nginx/geoip/GeoLite2-City.mmdb {
      auto_reload 24h;
      $geoip_city   default=Unknown city names en;
    }



    map $geoip_country_code $allowed_country {
        default no;
        CN yes;
    }

    map $remote_addr $allowed {
        default $allowed_country;
        127.0.0.1 yes;
        ~^192\.168\.\\d+\.\\d+$ yes;
        ~^172\.16\.0\.\\d+$ yes;
        ~^172\.17\.\\d+\.\\d+$ yes;
    }

    log_format json_analytics escape=json '{'
    '"timestamp": "$msec", ' # request unixtime in seconds with a milliseconds resolution
    '"connection": "$connection", ' # connection serial number
    '"pid": "$pid", ' # process pid
    '"remote_addr": "$remote_addr", ' # client IP
    '"remote_port": "$remote_port", ' # client port
    '"time_iso8601": "$time_iso8601", ' # local time in the ISO 8601 standard format
    '"upstream": "$upstream_addr", '
    '"protocol": "$protocol", '
    '"allowed": "$allowed", '
    '"request_method": "STREAM", '
    '"geoip_country_code": "$geoip_country_code", '
    '"geoip_country_name": "$geoip_country_name", '
    '"geoip_city": "$geoip_city"'
    '}';

    access_log /var/log/nginx/access.log json_analytics;
    error_log /var/log/nginx/error.log warn;

    include /etc/nginx/stream.d/*.conf;
}

ssh 代理

map $allowed $ssh_server {
    yes ssh;
}

upstream ssh {
    server  192.168.5.1:1234;
}

server {
    listen    5678;
    listen [::]:5678;
    proxy_pass $ssh_server;
    proxy_connect_timeout 30s;
    proxy_timeout 60s;

    ssl_preread on;
}

http 代理

server {
    server_name x.x.com;
    listen 1233 ssl;
    listen [::]:1233 ssl;

    http2 on;
    charset "utf-8";

    if ($allowed != yes) {
        return 404;
    }

    error_page 497 =307 https://$host:$server_port$request_uri;

    client_max_body_size 512M;
    proxy_buffering off;


    set $backend "http://192.168.5.1:1234";
    include /etc/nginx/conf.d/basic/no_log.conf;

    location / {
        proxy_redirect off;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass $backend;
    }

}

飞牛论坛分析原文,官方答复在评论区: https://club.fnnas.com/forum.php?mod=viewthread&tid=53230

下列是回复:

<!-- 感谢分享,分析很精彩,该问题官方已知,经过技术分析追踪该行为是是在公网暴露服务的情况下,开启 http 明文方式访问,设备曾被来自海外的 ip 异常访问或利用,导致三方进程残留或被再次触发,进而产生大量连接的问题。最新系统已对该特征做过滤与防护。
但 http 的明文访问方式本身存在高风险,因此建议

遇到该情况,建议按以下步骤确认一下设备安全
1. 确认当前飞牛系统版本已升级至最新版本 1.1.15
2. 确认在关闭公网端口映射情况下,异常上传行为是否停止
3. 确认设备公网访问场景下,是使用的 HTTPS 与 FNID 或其他加密访问方式

针对遇到问题后重装,需要注意
1. 检查新系统中是否存在非飞牛默认服务的进程、容器或计划任务
2. 需重点关注异常文件是否位于数据盘中,系统重装后仍可能被再次触发

如果在以上操作后,依然遇到疑似风险访问行为,可与官方联系

我们也欢迎技术专家通过官方渠道向飞牛提交安全漏洞线索,经确认的首个有效线索,将获得相应的安全反馈激励。漏洞反馈入口:
https://trim-nas.feishu.cn/share/base/form/shrcnYhRB4ryb9K8Te9GEqeRYYe?from=from_parent_docs

HTTP 在公网传输中存在固有的安全缺陷。最有效的防护措施,就是避免在公网直接使用 HTTP。 -->

以及

<!-- Q:普通用户不开公网,会不会有危险?
飞牛社区主理人
A:不纯是公网原因,明文访问方式才是高风险的关键,有公网的情况下,强制 HTTPS 能避免当前情况 -->

出于市场对网络安全的不断重视,众多企业也逐渐开启网站的SSL证书部署,既响应政策号召,又可避免被潜在的网络攻击威胁。正因如此,当企业在官网上看到绿色的安全锁标志时,通常认为数字证书的任务已经结束。事实上,真正的风险往往从安全证书部署完成后才开始显现。从证书签发机构的可信度,到服务器配置的细节,再到日常维护和管理,每一个环节的疏忽,都有可能让这一重要的安全措施失去应有的效果,甚至演变成新的攻击途径。JoySSL通过长期的安全审查和行业研究发现,多数企业在部署SSL证书后,常常忽略其生命周期内的安全管理工作,从而无形中埋下了严重的隐患。这些问题并非SSL技术的固有缺陷,而是源于“部署即完成”的错误观念以及粗放的管理方式。

证书安全锁不彻底 身份验证模糊

安全锁标志并不意味对所有内容的保护,主网页采用HTTPS加密,但部分资源如图片或样式表,仍通过HTTP协议加载,从而形成混合内容,导致浏览器降低网站的安全评级,未加密的HTTP资源可能会被篡改。

对金融、政务、电商等平台,仅使用DV证书无法有效向用户证明企业的真实身份,尤其在防范钓鱼攻击方面,信任缺陷尤为突出。EV证书显示的绿色地址栏,能够为企业提供对抗仿冒行为的显著可视化优势。

过期证书服务中断 一证通用弊端

未能及时续期是证书服务中断的主要原因,依靠个人记忆来管理大批量证书的续期工作,极易出现疏漏,从而导致关键业务平台因证书过期而无法正常运行。引入自动化的监控,建立完整的证书生命周期管理机制,方能有效降低中断风险。

私钥作为SSL证书体系的核心,需要极高的保护措施。若在多台服务器间重复使用同一私钥,将私钥以明文存储在共享目录或代码仓库中,一旦私钥泄露,所有相关服务均可能受到安全威胁。

颁发机构不被信任 证书无人管理

并非所有证书颁发机构都具备同等的可信度,较为冷门的颁发机构其根证书可能难以得到广泛认可,应优先选择与全球顶级根证书库合作的供应商。

随着企业业务规模的不断扩大,可能会产生大量无人维护的数字证书。一旦出现过期或配置问题,便可能引发安全漏洞与业务中断的风险。企业需完善并维护统一的证书管理清单,确保安全措施全面覆盖。

主动部署数字证书 打造安全堡垒

部署SSL证书,只是创建可信通信环境的开端,而非安全策略的最终目标。其实际效果取决于配置的规范性、管理的高效性以及应对的及时性。JoySSL市场总监表示,当下互联网环境形势严峻,企业应将SSL证书管理作为核心的安全运营工作,系统化解决常见的风险。让SSL证书成为坚固、可靠且持续有效的安全屏障,为企业的数字化转型提供全面且专业的保障。

EV代码签名证书是什么?

EV代码签名证书(Extended Validation Code Signing Certificate)是一种高级别的数字签名证书,用于为软件代码、应用程序或驱动程序提供数字签名,确保其来源的真实性、完整性以及未被篡改。与普通的代码签名证书(如OV或DV)相比,EV代码签名证书提供了更高的信任级别,特别适用于需要增强用户信任的商业软件或企业级应用。

EV代码签名证书的特点与优势

  1. 高信任级别

    EV代码签名证书通过严格的验证流程,向用户证明软件的来源是合法且经过验证的。安装使用此证书签名的应用时,操作系统和浏览器会显示软件签名者的公司名称,增强了用户对软件的信任。

    许多操作系统(如Windows)对EV代码签名证书的支持更加完善,因此具有更强的安全保障,用户会看到明显的“绿色标识”和公司名称。

  2. 更好的防篡改保障

    EV证书为软件的数字签名添加了强有力的加密保护,防止软件在发布后被篡改或感染恶意代码。

  3. 浏览器和操作系统兼容性
**EV证书**在 Windows 操作系统和主要浏览器(如Chrome、Edge、Firefox等)中都会显示可信标识,增强软件的可信度。特别是在Windows上,EV签名的程序会显示开发者的名称,减少用户看到“未知发布者”的警告。
  1. 提高下载率

    由于EV代码签名证书增强了软件的可信度,因此会提高用户下载和安装的意愿。用户在看到签名者是经过验证的知名公司后,会更放心地安装和使用软件。

  2. 保护开发者与用户

    通过数字签名,开发者能够证明软件的完整性,并证明没有任何中间人篡改。对于用户来说,EV签名能够有效防止恶意软件、病毒等的侵害。

EV代码签名证书的申请流程

与普通的代码签名证书(如DV、OV)相比,申请EV代码签名证书的过程更加严格,需要经过更为详尽的身份验证,以确保签发证书的公司或开发者的合法性。下面是申请EV代码签名证书的基本步骤:

点击查看代码签名证书详情

1. 准备申请所需资料

在申请EV代码签名证书时,您需要提供以下资料:

  • 公司信息:EV代码签名证书是面向企业/组织的,而不是个人。您需要提供公司的正式注册名称、地址、电话、税务号码等合法公司信息。
  • 公司注册文件:包括公司注册证明、法人代表身份证明、营业执照等,证书颁发机构(CA)会核实您的公司是否为合法存在的企业。
  • 组织验证资料:CA会对您的公司背景进行详细核查,确认公司是否符合申请条件。
  • 域名或组织信息验证:部分CA可能还会要求您提供一些额外的信息,如注册的域名或相关的组织信息,确保您的公司信息的准确性和合法性。

2. 选择证书颁发机构(CA)并提交申请

访问CA机构官网:打开JoySSL官方网站注册一个账号。在注册过程中,需要填写特定的注册码230970以获得大额优惠券和技术支持。

选择证书类型:根据企业需求选择OV或EV证书。

完成验证:根据要求进行验证,可能涉及企业组织身份验证等。验证通过后,证书将被签发。

安装证书:在服务器上安装证书,并测试网站是否能够通过HTTPS正常访问。

前端在开发的过程中有没有碰到过 CORS 的坑呢?欢迎提问,我也乐于分享(不是我更懂,只是碰到过而已)。

mkcert可以生成证书并将证书加入操作系统的信任列表,因此将证书配置到你的测试环境之后,可以直接访问 https://localhost:3000 而不会有任何警告。
要测试类似生产环境的 CORS ,比如前后端完全分离的架构,https 必不可少。

那么如何在局域网内完成类似的效果呢?比如 https://192.168.3.168 。或者使用 vscode remote ssh 的时候,在本地打开本地的浏览器可以访问,但是在 remote 端,有时候需要访问一下呢?也就是说需要一个分布式的 mkcert ,cert-ctrl,这个是我们写的。self-ca 在 这里生成,在每个需要访问你的测试服务的电脑上安装客户端即可。对于某些生产环境的管理页面,如果不需要公开访问,直接用自签发的 mTLS 即可。

题外话:
有些人对文章的内容不感兴趣,对文章中提到别人的软件也没关系,唯独对提到作者自己的软件耿耿于怀,其实大可不必,最好的做法是不要去理这样的贴子如果你觉得没有价值。大家都不理它,它就自然下沉消失不见了。

RustFS 默认通过 9001 端口登录控制台,9000 端口使用 API,为了安全合规,通常采用启用 HTTPS、反向代理(诸如 nginx、traefik、caddy 等)的方式来更加安全的使用 RustFS。本文分享一种更加安全的方式,通过 Cloudflare tunnel 来访问你的 RustFS 实例。

安装 RustFS

RustFS 支持二进制、Docker 以及 Helm Chart 的安装方式,详细方法可以查看官网安装指南。将如下内容写入 docker-compose.yml 文件:

services:
  rustfs:
    image: rustfs/rustfs:latest
    container_name: rustfs
    hostname: rustfs
    environment:
      - RUSTFS_VOLUMES=/data/rustfs{1...4}
      - RUSTFS_ADDRESS=0.0.0.0:9000
      - RUSTFS_CONSOLE_ENABLE=true
      - RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001
      - RUSTFS_ACCESS_KEY=rustfsadmin
      - RUSTFS_SECRET_KEY=rustfsadmin
      - RUSTFS_TLS_PATH=/opt/tls
    ports:
      - "9000:9000"  # API endpoint
      - "9001:9001"  # Console
    volumes:
      - data1:/data/rustfs1
      - data2:/data/rustfs2
      - data3:/data/rustfs3
      - data4:/data/rustfs4
      - ./certs:/opt/tls

    networks:
      - rustfs

networks:
  rustfs:
    driver: bridge
    name: rustfs

volumes:
  data1:
  data2:
  data3:
  data4:

运行如下命令

docker compose up -d

即可安装好一个 RustFS 实例:

docker compose ps
NAME      IMAGE                          COMMAND                  SERVICE   CREATED          STATUS          PORTS
rustfs    rustfs/rustfs:1.0.0-alpha.81   "/entrypoint.sh rust…"   rustfs    22 minutes ago   Up 22 minutes   0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcp

配置 Cloudflare tunnel

配置 Cloudflare tunnel 大体分为 域名配置tunnel 配置 两部分。

域名配置

域名配置是为了后期能够更方便的访问 RustFS。

  • 使用 Cloudflare 账号登录 Cloudflare Domain 界面;
  • 在左侧导航栏,Account home,如果你已经有域名,则选择 Onboard a domain,否则可选择 Buy a domain
  • 如果选择 Onboard a domain,点击该选项后,在出现的界面中输入你的域名,然后继续往下走,直到在最后选择 Continue to activation
  • 如果一切顺利,可以在域名管理首页看到添加成功的域名,其 Status 会显示为 Active

image.png

tunnel 配置

  • 使用 Cloudflare 账号登录 Cloudflare Dashboard
  • 在左侧导航栏,选择 Networks -> Connectors,在右侧界面点击 Create a tunnel
  • 在 tunnel 类型中,选择 Select Clouflared
  • Install and run connectors 中,根据 RustFS 实例所在服务器的操作系统信息,选择相应的安装方式。安装完毕后,可以在服务器上查看 cloudflared 服务的状态。运行正常后点击 Next

    systemctl status cloudflared
    ● cloudflared.service - cloudflared
         Loaded: loaded (/etc/systemd/system/cloudflared.service; enabled; preset: enabled)
         Active: active (running) since Fri 2026-01-16 21:18:53 CST; 6 days ago
       Main PID: 2538004 (cloudflared)
          Tasks: 10 (limit: 4375)
         Memory: 31.3M (peak: 38.7M swap: 8.2M swap peak: 15.3M)
            CPU: 18min 16.159s
         CGroup: /system.slice/cloudflared.service
  • Route Traffic 中,配置 HostnameService 信息。

    • Hostname 中填写的域名可用于后续访问 RustFS 实例,可以在 Domain 字段中选择 域名配置 部分添加好的域名。如果想通过子域名访问,也可以在 Subdomain 字段中输入子域名名称。
    • Service 选择服务类型和 URL。对于上述安装的 RustFS 实例,Type 可以选择 HTTP/HTTPS(如果启用了 HTTPS,可选择 HTTPS,否则用 HTTP),URL 为 localhost:9001

    image.png

  • 点击 Complete setup 完成配置。

上述配置结束后,可以在 Connectors 界面看到添加好的 tunnel,如果一切顺利,则可以看到 Status 为绿色的 HEALTHY

在 Hostname 和 Service 设置页面的 Additional application settings 部分,点击 HTTP Settings,在 HTTP Host Header 部分,输入访问 RustFS 的域名,这是为了避免后续使用出现签名错误。

登录验证

恭喜你,如果你顺利完成了上述两部分的配置后,那么现在你就可以通过你配置好的域名来访问 RustFS 实例了。本文配置的域名为 rustfs.xiaomage.vip,所以在浏览器中输入 https://rustfs.xiaomage.vip 即可访问 RustFS 实例:

image.png

输入 rustfsadmin/rustfsadmin 即可登录。

接下来就可以通过多种方式来使用 RustFS 实例了,比如 mcrc 以及 rclone

通过 mc 使用 RustFS

mc 是 Minio 的专属客户端,由于 RustFS 是 S3 兼容的,而且是 Minio 的平替,所以可以用 mc 来操作 RustFS。

前提

mc --version
mc version RELEASE.2025-08-29T21-30-41Z (commit-id=f7560841be167a94b7014bf8a504e0820843247f)
Runtime: go1.24.6 darwin/arm64
Copyright (c) 2015-2025 MinIO, Inc.
MinIO Enterprise License

使用

# 添加 `alias`
mc alias set rustfs https://rustfs.xiaomage.vip rustfsadmin rustfsadmin

# 创建存储桶
mc mb rustfs/hello

# 列出存储桶
mc ls rustfs
[2026-01-23 21:39:36 CST]     0B hello/
[2026-01-23 20:12:59 CST]     0B test/

# 上传文件到存储桶
echo "123456" > 1.txt
mc cp 1.txt rustfs/hello
/tmp/1.txt:                         ██████████████████████████████████████████████████████████████████████████████████ 100.0% 7 B       1 B/s      

# 查看上传的文件
mc ls rustfs/hello
[2026-01-23 21:40:44 CST]     7B STANDARD 1.txt

更多用法可自行探索。

通过 rclone 使用 RustFS

rclone是一个命令行工具,可以对不同云提供商上的文件和目录进行同步。

前提

rclone --version
rclone v1.72.1
- os/version: ubuntu 24.04 (64 bit)
- os/kernel: 6.8.0-71-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.25.5
- go/linking: static
- go/tags: none

使用

  • 配置 rclone

执行 rclone config 命令,根据 RustFS 实例信息,一步步进行配置。配置完成后,会生成一个 ~/.config/rclone/rclone.conf 文件,一般内容如下:

[rustfs]
type = s3
provider = Minio
access_key_id = rustfsadmin
secret_access_key = rustfsadmin
endpoint = https://rustfs.xiaomage.vip
region = us-east-1
force_path_style = true
由于目前 RustFS 还未向 rclone 官方提 PR 以增加 RustFS provider 信息,因此使用 Minio 作为 provider。
  • 开始使用
# 列出存储桶和对象

rclone ls rustfs: --s3-sign-accept-encoding=false
        7 hello/1.txt
    11792 test/1.log
   520512 test/123.mp3
     7394 test/2.log
   147240 test/321.mp3
   

# 查看某个对象内容
rclone cat rustfs:hello/1.txt --s3-sign-accept-encoding=false
123456 

对于其他用法,可以通过 rclone --help 来自行探索。

注意:添加 --s3-sign-accept-encoding=false 参数是因为 Cloudflare 会对 Accept-Encoding 参数进行修改,在 S3 协议中,这种变更会导致 SignatureDoesNotMatch 错误,详情可以查看 RustFS issue

通过 rc 使用 RustFS

rc 是 RustFS 的 Client,用来对 RustFS 进行操作。目前,刚发布 0.1.1。可以使用 cargo 或源码编译安装。

rc --version
rc 0.1.1

目前提供 aliaslsmbrb 等多种常规命令。使用方式和 mc 类似。

# 设置 alias
rc alias set rustfs https://rustfs.xiaomage.vip rustfsadmin rustfsadmin
✓ Alias 'rustfs' configured successfully.

# 列出存储桶
rc ls rustfs
[2026-01-23 13:39:36]         0B hello/
[2026-01-23 13:56:57]         0B rclone/
[2026-01-23 12:12:59]         0B test/

# 创建存储桶
rc mb rustfs/client
✓ Bucket 'rustfs/client' created successfully.

更多用法,可以通过 rc --help 进行查看并自行探索,使用过程中有任何问题,可以在 GitHub Issue中进行反馈。

网站部署SSL证书的重要作用如下:

  1.SSL证书可加密敏感信息使其不被泄露

  使用SSL证书的主要原因是为了保障通过Internet发送的敏感信息能够加密,防止重要数据不被泄露。这很重要,因为您在Internet上进行计算机与服务器之间的信息传递,如果未使用SSL证书加密,则您传递的任何信息都有可能被第三方获取,包括您的信用卡号,用户名和密码以及其他敏感信息。使用SSL证书后,可以保障所有人都无法读取信息,这可以保护信息数据免受黑客或者用心不良的人的侵害。

  2.SSL证书可提供身份验证,防止钓鱼网站

  除信息加密外,SSL证书可提供身份验证。这意味着您可以确保将信息发送到正确的服务器,不用担心别人窃取您的信息。有效的防止第三方伪装成您的网站并欺骗您的用户,获取用户个人信息,造成或大或小的损失。而SSL证书是由受信任的CA机构颁发的,申请证书时会严格的验证企业/组织的信息。所以说,选择受信任的CA机构颁发的SSL证书非常的重要,CA机构会通过各种信息的验证才会颁发SSL证书,而且EV SSL证书需要比其他证书更多的验证资料。

  3.SSL证书可增加信任度

  安装SSL证书的网站在Web浏览器的地址栏可显示,绿色小锁图标,绿色地址栏,EV SSL证书还能显示企业/组织名称。以确保访问者知道其连接是受到保护的,可放心使用。这意味着当访问者看到这些提示信息会更信任您的网站。而且可以查看CA机构的颁发信息,以便为您的客户提供的更多信任。

  HTTPS还可以防止网络钓鱼攻击。网络钓鱼电子邮件是冒充您网站来进行犯罪的,钓鱼电子邮件通常包含指向其网站的链接或使用中间人攻击来达到目的。由于这些违规现象无法获得正规CA机构颁发的SSL证书,因此他们无法完全冒充您的网站。这意味着您的用户陷入网络钓鱼网站的可能性很小。

image.png

当用浏览器访问某个网站时,如果浏览器显示“不安全”警告,这往往会立即引起用户的警惕,还可能会流失客户。

一、网站被提示“不安全”的原因

1. 证书自身问题(最常见)
  • 已过期:证书有明确的有效期(通常为1年,最长为13个月)。过期后,“门锁”自动失效,需要续期。
  • 域名不匹配:证书是为 www.example.com 签发,但你访问的是 example.com 或 shop.example.com。这是配置时的常见疏忽。
  • 签发机构不受信任:证书并非来自浏览器和操作系统信任的根证书列表中的CA。一些自签名证书或企业内部CA签发的证书会触发此警告。
2. 服务器配置问题
  • 证书链不完整:服务器没有正确安装中间证书,导致浏览器无法验证证书的完整信任链。
  • 使用了不安全的加密协议:服务器仍支持已被废弃的弱加密算法(如SSL 2.0/3.0, TLS 1.0)。
3. 网络环境问题(最危险)
  • 中间人攻击:你所在的网络(如公共Wi-Fi)可能存在恶意攻击者,他试图在你和目标网站之间插入自己的伪证书,以窃取你的数据。浏览器发现证书被篡改或无法验证,会发出强烈警告。

二、解决方案如下

免费SSL证书申请入口

1.访问JoySSL官网并注册账号

首先,登录JoySSL的官方网站,并注册一个账号。在注册过程中,务必填写特定的230970注册码才获取免费SSL证书的申请权限。

2.选择证书类型

登录JoySSL账号后,根据您的需求选择适合的SSL证书并0元下单支付。

3.填写申请信息

按照页面提示填写申请信息,包括域名信息、联系信息等。

4.验证域名所有权

完成信息填写后,JoySSL将要求您验证域名所有权。这通常通过域名DNS验证或服务器文件验证方式来完成。

5. 部署证书

验证后,10分钟左右签发,签发后,下载证书文件,将其部署到相应服务器上。

6. 测试证书

访问网站,检查是否实现HTTPS访问以及地址栏上有绿色的安全锁。

  纯情博客为您提供最新网络安全黑客博客信息资讯

  随着互联网的发展,越来越多的人开始使用建立自己的网站,但是随着网络攻击的增多渗透测试,网站安全问题已经成为了一个不可忽视的问题。在这篇文章中chatgpt,我们将会详细探讨 SSL的相关知识。我们将从以下8个方面进行逐步分析讨论:

  1.什么是SSL证书

  2. SSL证书的类型

  3.如何申请SSL证书

  4.如何安装SSL证书

  5.如何配置 SSL

  6. SSL插件推荐

  7. SSL常见问题解答

  8. SSL优化建议

  1.什么是SSL证书

  SSL( Layer)全称为安全套接字层wordpress ssl视频培训脚本,是一种用于保护网络通信安全的协议。SSL协议通过对数据进行加密和解密来确保数据传输过程中不被窃听、篡改或伪造。SSL证书就是用于验证服务器身份和保护用户数据安全的数字证书。

  2. SSL证书的类型

  目前常见的SSL证书类型有三种:DV(域名验证)、OV(组织验证)和EV(扩展验证)。DV证书只验证域名是否有效,OV证书需要对组织进行认证,而EV证书则需要对组织的合法性进行更加严格的验证。

  3.如何申请SSL证书

  通常情况下,你需要向权威认证机构购买SSL证书视频培训脚本,比如、、等。你可以在官方网站上选择适合自己的证书类型和期限wordpress插件,并填写相关信息进行申请。在提交申请后,认证机构会对你进行身份验证,并在验证通过后颁发证书。

  4.如何安装SSL证书

  安装SSL证书需要一定的技术水平,如果你不懂得如何安装证书,可以寻求专业人士的帮助。在安装证书之前chatgpt,你需要准备好服务器密钥和CSR( )文件。一般情况下wordpress sslwordpress ssl,认证机构会提供相应的安装指南,你只需按照指南进行操作即可完成安装。

  5.如何配置 SSL

  配置 SSL需要先确保已经成功安装了SSL证书。接着,在后台选择“设置”->“常规”wordpress ssl,将地址和站点地址修改为https协议。然后,在.文件中添加以下代码:

  


< .c>
On
%{} 80
^(.*)$ $1[R,L]
</>

  6. SSL插件推荐

  如果你不想自己手动配置 SSL,可以使用一些插件来自动化配置。这里推荐两款插件: SSL和WP Force SSL。这两款插件均可以自动将网站转换为https协议,并解决一些常见的 SSL兼容性问题。

  7. SSL常见问题解答

  Q:我的网站转换为https后变慢了怎么办?

  A:这可能是因为你的服务器不支持HTTP/2协议chatgpt,可以尝试升级服务器或者使用CDN。

  Q:我的网站转换为https后出现了混合内容警告怎么办?

  A:这是因为你的网站中存在非https链接,可以使用插件或手动修改代码来解决。

  8. SSL优化建议

  除了以上介绍的方法外,还有一些优化建议可以帮助你更好地保护网站安全:

  1.定期更新和插件,确保其安全性;

  2.使用强密码培训脚本,并定期更改密码;

  3.安装防火墙和安全插件,增强网站安全性;

  4.避免在公共网络上登录管理后台;

  5.定期备份网站数据,以便在意外情况下进行恢复。

  总之, SSL是保护网站安全的重要措施之一。通过本文所述的方法,相信您已经掌握了 SSL的相关知识。如果您还有其他问题或建议,欢迎在评论区留言。如果您对本文感兴趣,可以访问黑客博客获取更多相关信息。

  工欲善其事必先利其器,这是一个关于十大黑客最佳操作平台的综合文章。

  在本文中,包括公德黑客运用的10个绝佳操作平台。每一个都是免费的,基于于Linux位,并且与许多黑客工具一起打包。

  10.

  |IMG

  是一个渗透检测的发行版的Linux从全球受到了最流行的免费的操作平台无法为黑客,的2017黑客入侵工具包,和周遭的工作GNOME经典图形桌面状态。

  该为大概3GB的镜象DVDISO画质,是基于的发行及自起动运行光碟,其传统在于一套用于网路渗透检测的实用软件虽然它与非常相像,但并不完全相似。采用了GNOME桌面。

  致力于必须执行渗透检测操作的安全学者视频培训脚本,的工作框架大部份包括了五分类软件,这些工具早已在菜单包括五个类别归纳整理。

  下载

  9.

  2017黑客入侵工具包

  |IMG

  是一个基于的开放源码渗透检测Linux发行版,它借助存档进行升级。它包含300多个渗透检测软件,另外还包含进行广泛操作所需的基本管理硬件。

  下载

  8.HAWKLINUX

  截图|IMG:

  HawkLinux被视为常识解决方案有限公司(PvtLtd.)生产的最非凡黑客技术,最有效和全面的基于的渗入测试Linux分散技术。专用于700多种适于渗透检测仪的软件,以及300多种适于多功用安全的器材和蓄意软件调查。

  HawkLinux是为白围巾黑客和渗入测试者设计的基于(Linux)的Linux发行版操作平台。Hawk可以适于网络安全和会计或者数字取证。它还包括多种软件,适合于联通安全和无线网路安全检测。

  下载HAWKLINUX

  7.ARCHLINUX

  ArchLinuxIMG:

  ArchLinux绝对是免费和开放源代码软件,并支持社区参加。

  ArchLinux是通用x86/64GNU/Linux发行版。Arch采用滚动更新机制,尽大力提供最新的稳固版硬件。初始安装的Arch只是一个基本平台,随后客户可以按照自己的偏好安装必须的硬件并配置成合乎自己梦想的平台.

  下载ArchLinux

  6.(NST)

  NST|iMG

  网络安全软件包(NST)是一个可鼓励的即用(live)CD,基于Core。这个软件包设计用来方便访问最棒的开源网路安全应用,主要运行在x86系统上。开发这个网路安全软件包的主要目的是为网路安全管控人员提供一套完备的开源网路安全软件。

  NST最奇特的地方是可以将大多数x86机器(奔腾2及以上)转化成一台可以适于网络流量预测、入侵测试、网络数据包生成、无线网路监视的虚拟服务器,当然它也可以当作一套复杂的网路/主机扫描器来使用。

  下载

  5.WEB

  武士网络测试|IMG:博客

  Web测试框架从根本上集中在检测Web应用程序的安全性,并牵涉Web评估和误用设备的负载。建立“武士网络测试框架”的功绩来自于Kevin,和Frank。“武士框架”为公德黑客和面试者提供了一个即时Linux条件,该条件预先配置为再次运行成为虚拟机执行Web渗透检测。

  武士Web测试框架结合了众所周知的检测器材,如和ance,和适于映射,w3af和Burp的启迪,以及BeEF和的研发。结构依赖于9.04,是完全开源的,并斩获关于工程的正常升级。

  下载WEB

  4.

  IMG

  是一个基于Unix的工作框架,根据由RedHat公司支持的由支持的组创立的Linux和GNU程序(Linux发行版)。

  包括的程序分散在不同的免费和开放源代码许可证下,并计划变成这种科技的主要优势。是RedHatLinux发行版的附属产品。

  下载

  3.

  IMG

  OS是面向安全的操作平台,它被设计为适于渗透检测、计算机取证、反向工程、攻击、云计算渗透检测、隐私/匿名、密码等场合。该发行基于,其传统在于MATE桌面环境,并由研发。

  操作平台运用Kali存档进行各类捆绑更新并协调新的软件。为PC框架审查员提供一个简略易用的GUI和重量级条件,发挥广泛的法律科学,弱点评估和加密。这个操作平台是十分适于定制化。

  下载操作平台

  2.

  LinuxIMG

  是一个基于的Linux发行版,用于在安全检测中帮助道德黑客和渗入测试员工。操作平台的目标是更迅速,更有效地运行并具备可忽视桌面的状况。的主要优势在于,它自己的特定软件内存在正常的时间间隔内进行升级2017黑客入侵工具包,以维持颜色的稳固和流行。

  分散包括从Web测试和平台调查到拉伸测试,嗅探,安全检测,犯罪现场调查和研发的70多种软件。

  下载

  1.KALILINUX

  KaliLinux|

  最先进的渗入测试平台。KaliLinux也是一个旨在于小软件(称为KaliLinux)应用。

  由Ltd维护和支助。最先由的Mati和Devon通过重写来完成,是她们之前写的适于取证的Linux发行版。

  最流行的kaliLinux软件

  Nmap,-ng,,,框架,Burp套件,John培训脚本,社会项目软件包,,,OWASPZAP

  下载KALILINUX