开启HTTPS访问

开启HTTPS

通过https协议访问服务器,可以加密传输的信息,以免数据被第三方获取。

您可以采用以下2种方法来开启https:

  • 使用Nginx反向代理
  • 添加SSL证书并配置环境变量

推荐使用Nginx反向代理

您可以直接安装Nginx来配置反向代理,也可以安装Nginx Proxy Manager或者nginxWebUI这类带ui配置界面的工具;

推荐使用Nginx Proxy ManagernginxWebUI,因为它们集成了图形化配置、SSL证书申请、自动续签SSL证书等功能;

另外也可以开启Nginx的HTTP基本认证(HTTP Basic Authentication) 来对所有请求进行验证;

App和网页端均支持开启HTTP基本认证后的访问;

HTTP基本认证是一种用于保护Web应用程序的身份验证机制。
它通过在HTTP请求头中包含用户名和密码的方式来验证用户的身份。
当客户端发送请求时,服务器会返回一个HTTP 401状态码和一个WWW-Authenticate头,要求客户端提供有效的凭据。
客户端再次发送请求时,将凭据包含在Authorization头中。
服务器验证凭据的有效性,并根据结果返回相应的响应。

添加SSL证书并配置环境变量

  1. 在容器内的/config/目录下新建ssl文件夹;
  2. 到腾讯云或者其他云服务商上申请1年单域名的免费SSL证书;
  3. 等待SSL证书审核通过,然后下载 Nginx格式的证书;
  4. 将SSL证书放到/config/ssl/目录中;
  5. 将证书的名称改为 域名.crt、域名.key,比如 xx.xxx.com.crtxx.xxx.com.key
    • 如果没有.crt文件,请将 .pem文件重命名为 xx.xxx.com.crt
    • 如果是letsEncrypt申请的证书,需要将 fullchain.pem 重命名为 xx.xxx.com.crtprivkey.pem重命名为 xx.xxx.com.key
  6. 添加容器的环境变量:SSL_NAME, 添加容器的端口映射:8163;
    • 新增的环境变量,key填写SSL_NAME,value填写域名名称,比如 xx.xxx.com
    • 新增的8163端口是给https访问用的,使用网页或app访问时需要加上这个端口号
    • 检查/config/ssl 文件下是否有这2个文件,以及域名名称是否匹配 文件和容器配置
  7. 启动容器,日志会输出 [MT Photos] : Server started, http port:8063 https port:8163
  8. 配置路由器端口8163映射(如果需要的话)
  9. 使用https://xxx.com:8163 来访问

Windows端文件位置

windows服务端,需要在缓存文件夹下新建ssl文件夹,然后将证书文件放进去;

/config/ssl/ 对应为 缓存文件夹/ssl

安卓App 使用Https访问提示错误?

Trust anchor for certification path not found.

解决方法请看:安卓App HTTPS无法登录

SSL相关的环境变量:

SSL_NAME=xxx.com
MT_SERVER_SSL_PORT=8163

注意:SSL_NAME需要与/config/ssl/下的文件名称一致

命令举例:

docker run -d\
  --name="mt-photos" \
  -v /appdata/mt_photos/config:/config \
  -v /appdata/mt_photos/upload:/upload \
  -v /photos/folder1:/folder1 \
  -v /photos/folder2:/folder2 \
  -p 8063:8063 \
  -p 8163:8163 \
  -e TZ="Asia/Shanghai" \
  -e SSL_NAME="xxx.com" \
  -e MT_SERVER_SSL_PORT="8163" \
  --restart="unless-stopped" \
  mtphotos/mt-photos:latest

环境变量的详细用法

Copyright © 2023 杭州相册家科技有限公司 All Rights Reserved

浙公网安备 33019202000625号浙ICP备2022014580号