Memos 配置 SSL 证书

本贴最后更新于 527 天前,其中的信息可能已经斗转星移

缘起

想要尝试一下 Memos 的移动客户端: moe memos​. 但是发现自己部署后,没有办法连接到服务器, 苹果应用似乎强制要求你访问的服务器具备 ssl​ 证书.

前置准备

  • 购买一台云服务器并通过 docker 安装 memos
  • 域名
  • 申请 SSL 证书

SSL 证书的申请步骤各个云服务器厂商都有教程,在此不做赘述,直接申请免费的即可. 申请完毕后,下载对应的证书文件. 这里可以使用 scp1​ 命令来将下载到本地的 ssl 证书上传到云服务器.

nginx

首先需要编写一下 nginx 配置文件. events​ 和 http​ 这两个是必须要编写的.不然会运行失败.

我的 memos​ 运行在 5230​ 端口,所以这里监听 5231​ 端口,并将请求转发到 5230​ 端口.

需要注意 proxy_pass​ 这里的 ip 地址应该使用的是你云服务器的私有 ip 地址. 直接使用 localhost 可能导致 nginx 运行成功,但是无法成功转发请求.

events{ worker_connections 1024; } http{ server { listen 5231 ssl; # 监听 5231 端口并启用 SSL # server_name crowds.top; # 替换为您的域名 # SSL 证书路径,路径会在后续运行命令中的参数挂载 ssl_certificate /etc/nginx/ssl/nginx_ssl/crt.crt; # SSL 私钥路径 ssl_certificate_key /etc/nginx/ssl/nginx_ssl/key.key; location / { proxy_pass http://xxx.xxx.xxx.xxx:5230; # 代理到主机的私有 ip 的 5230 端口 proxy_set_header Host $host; 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; } } }

下面的脚本是 ngnix 的运行命令. 这里注意, 我们在启动时,将配置文件和 ssl 文件地址挂载到了 /etc/nginx/​ 目录下. 所以在配置文件中,对应的目录也应该是 /etc/nginx/​ 目录下的地址.

#!/bin/bash docker run --name memNginx \ -p 5231:5231 \ -v /root/nginxConfig/nginx.conf:/etc/nginx/nginx.conf \ -v /root/mySsl/:/etc/nginx/ssl \ -d nginx

执行后可以使用 docker ps -a​ 命令查看对应的容器是否运行成功,如下结果,则表示运行失败. 需要使用 docker logs <CONTAINER ID>​ 来查看是哪里出了问题.

CONTAINER ID STATUS 0b36fbd3438a Exited (1) 12 hours ago

APP 成功登录并访问:

IMG_1741

本地 SSL 证书

配置过程中,了解到还有一种做法,如果只是在家使用,似乎可以配置本地 SSL 文件. 具体过程我不太了解. 但是似乎更简单.


  1. scp

    Linux 中的 scp​ 用于文件 ==远程传输==

    • Linux 中的 scp​ 命令的格式为

      • scp /path/to/file.txt remoteuser@ip.xx.xx.xx:/path/to/folder/

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...