开启HTTPS访问
1. 开启HTTPS
通过https协议访问服务器,可以加密传输的信息,以免数据被第三方获取。
您可以采用以下2种方法来开启https:
- 使用Nginx反向代理
- 添加SSL证书并配置环境变量
2. 推荐使用Nginx反向代理
您可以直接安装Nginx来配置反向代理,也可以安装Nginx Proxy Manager
或者nginxWebUI
这类带ui配置界面的工具;
推荐使用Nginx Proxy Manager
、nginxWebUI
,因为它们集成了图形化配置、SSL证书申请、自动续签SSL证书等功能;
另外也可以开启Nginx的HTTP基本认证(HTTP Basic Authentication) 来对所有请求进行验证;
App和网页端均支持开启HTTP基本认证后的访问;
HTTP基本认证是一种用于保护Web应用程序的身份验证机制。
它通过在HTTP请求头中包含用户名和密码的方式来验证用户的身份。
当客户端发送请求时,服务器会返回一个HTTP 401状态码和一个WWW-Authenticate头,要求客户端提供有效的凭据。
客户端再次发送请求时,将凭据包含在Authorization头中。
服务器验证凭据的有效性,并根据结果返回相应的响应。
3. 添加SSL证书并配置环境变量
- 在容器内的
/config/
目录下新建ssl
文件夹; - 到腾讯云或者其他云服务商上申请单域名的免费SSL证书(一般有效期为3个月);
- 腾讯云证书申请流程:https://cloud.tencent.com/document/product/400/6814
- 等待SSL证书审核通过,然后下载 Nginx格式的证书;
- 将SSL证书放到
/config/ssl/
目录中; - 将证书的名称改为 域名.crt、域名.key,比如 xx.xxx.com.crt、xx.xxx.com.key;
- 如果没有.crt文件,请将 .pem文件重命名为 xx.xxx.com.crt
- 如果是letsEncrypt申请的证书,需要将 fullchain.pem 重命名为 xx.xxx.com.crt,privkey.pem重命名为 xx.xxx.com.key
- 添加容器的环境变量:SSL_NAME, 添加容器的端口映射:8163;
- 新增的环境变量,key填写SSL_NAME,value填写域名名称,比如 xx.xxx.com
- 新增的8163端口是给https访问用的,使用网页或app访问时需要加上这个端口号
- 检查/config/ssl 文件下是否有这2个文件,以及域名名称是否匹配
- 启动容器,日志会输出
[MT Photos] : Server started, http port:8063 https port:8163
- 配置路由器端口8163映射(如果需要的话)
- 使用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
4. 环境变量的详细用法
- 环境变量说明
提示:在享受本文内容的同时,请注意版权归属 徐州鑫坤机电设备有限公司https://www.xzxkjd.com如果您觉得有价值欢迎分享,但请务必注明出处,感谢您的理解,谢谢!
以下部分内容需要登录查看 立即登录