前言:
MS365 E5 RenewX想必大家都不陌生吧;
发布本教程的目的,是为了记录自己的搭建过程,同时在这里感谢源码的作者辛勤付出和开源,感兴趣的可以去仓库点亮Stars,连接会放在文末。
Microsoft 365 E5 Renew X是一款网页版的E5续订服务,其依赖网页浏览器呈现支持用户多端操作,完全将E5账户API调用托管在了服务器端因此用户无需电脑也可使用。
Microsoft 365 E5 Renew X 由来
Microsoft 365 E5 Renew X为Microsoft 365 E5 Web的升级版,相对于旧版其增强了管理功能且更容易部署,API调用内核继承于续订桌面版软件Microsoft 365 E5 Renew Plus。
主要功能
用户端
两种可选的调用权限:用户未登录作为守护程序调用(需要客户端密码)、程序以登录用户身份直接调用(需要账户密码)
API种类齐全:41/30个可选的Microsoft Graph REST API Beta中的API(未来可能会继续添加)
完全随机的API调用模式:从已选定的API序列中随机抽取一个或几个进行调用(个数和API随机)
完全随机的API调用时间间隔:随机区段1000s-2000s固定
完全随机的API内容(仅部分API支持):发送邮件的内容随机 Onedirve上传文件的内容随机
邮件通知服务:支持设置通知邮箱,调用异常会通过邮件通知无需反复登录查看
部署端
平台兼容性:使用Asp.Net Core 作为跨平台框架增适用于 Windows|Linux|MacOS x64|x86|ARM64|ARM
灵活部署:支持开放站点部署和私享部署,私享部署不再强制要求配置Https和OAuth
无需数据库:不需要后台数据库支持,前后台一体化程序
用户后台管理:可修改用户的E5账户数量,以及封删管理
系统状态监视:系统占用率一目了然,可控的站点注册通道更容易控制系统用户数量
自定义页面:支持自定义HTML静态页面,可设置支付宝、微信收款码
显示ICP备案:支持ICP备案文字显示,可在国内备案建站
无人值守 运行自动暂停:可自动暂停有错误率过高的账号API调用
无人值守 自动恢复运行:可定期自动恢复全部账号的API调用,防止因微软网络原因触发大量账号停止API调用进而导致的账号续期失败
搭建步骤
安装docker,可到官方安装最新的Docker。
使用 root 权限登录 Centos。确保 yum 包更新到最新。
sudo yum update
安装的yum工具集
yum install -y yum-utils
安装docker-ce的yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce
yum install docker-ce
在 CentOS 上安装 Docker,这里是官方安装说明
设置存储库
yum-utils
yum-config-manager
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker 引擎
安装 Docker Engine、containerd 和 Docker Compose:
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker
sudo systemctl start docker
查看docker服务状态
systemctl status docker.service
开启自启动
systemctl enable docker.service
开启服务
systemctl start docker.service
配置Docker Compose环境:
安装compose v2
curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
将可执行权限应用于安装目标路径中的独立二进制文件
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
使用 测试和执行撰写命令
docker-compose
详细安装请看官方说明
部署Microsoft 365 E5 Renew X
我们先在root文件目录下创建一个目录为ms365e5renewx的文件夹,在文件夹下并创建docker-compose.yml文件,具体创建命令这里就不叙述了,一般的都懂。
还是附上命令吧,嘎嘎
mkdir ~/ms365e5renewx
cd ~/ms365e5renewx
touch docker-compose.yml
打开docker-compose.yml,按下面的示例写入(无需修改)
version: '3'
services:
nginx:
image: nginx:alpine
container_name: nginx
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:rw
- ./nginx/conf.d/:/etc/nginx/conf.d/:rw
- ./nginx/log/:/var/log/nginx/:rw
- ./nginx/cert/:/etc/nginx/cert/:rw
- ./nginx/html/:/usr/share/nginx/html/:rw
network_mode: host
e5renewx:
image: gladtbam/ms365_e5_renewx:latest
container_name: e5renewx
restart: always
volumes:
- ./e5renewx/Deploy/:/renewx/Deploy/:rw
- ./e5renewx/appdata/:/renewx/appdata/:rw
- ./e5renewx/static/:/renewx/wwwroot/static/:rw
ports:
- 1077:1077
示例中使用Nginx反代Renew X,实现强制https访问,比如避免暴露更多端口,以及可以和同一台服务器上的其他web服务共用80\443端口等,也可以不需要,自己用其他方法实现反代。
接下来我们在文件夹下面创建以下文件和文件夹,注意创建后要检查是否创建成功,否则会部署失败,提前创建的目录和文件归属是root用户,你懂的。
cd ~/ms365e5renewx
mkdir -p nginx/conf.d
touch e5renewx.conf
mkdir nginx/cert
mkdir -p e5renewx/Deploy
反向代理
以下为反向代理示例,根据你自己的更改
upstream e5renewx {
server localhost:1077;
}
server {
listen 80;
listen [::]:80;
server_name 你的域名如e5renewx.curious.host;
return 301 https://${server_name}$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name 你的域名如e5renewx.curious.host;
keepalive_timeout 1800;
client_max_body_size 100M;
sendfile on;
ssl_certificate /etc/nginx/cert/你的pem文件名;
ssl_certificate_key /etc/nginx/cert/对应的key文件名;
location /
{
proxy_pass https://e5renewx;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
注意,共享站要求全链路HTTPS,因此本示例中proxy_pass模块后必须对应包含https;//的地址。proxy_set_header为请求头传递,以便被代理的服务器获得用户真实IP,利于站点安全审计。
Renew X配置
首先在你在PC上到这里:https://sundayrx.lanzoui.com/aW09Lsss75g下载服务程序源文件。解压后找到Deploy文件夹下的Config.xml文件,初始内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
<!--站点服务器基本配置-->
<Serivce>
<!--服务访问端口-->
<Port>1066</Port>
<!--管理员密码(管理员登录路由/Admin/Login) 重要:首次启动前必须更改-->
<LoginPassword>12345678</LoginPassword>
<!--是否启用内核多线程支持-->
<CoreMultiThread>true</CoreMultiThread>
<!--网站备案号(选填)-->
<ICP></ICP>
<!--备案管理查询机构跳转链接(选填)-->
<ICPLink>https://beian.miit.gov.cn</ICPLink>
</Serivce>
<!--站点Kestrel服务器HTTPS配置 (只支持IIS证书类型 即PFX格式的证书)-->
<HTTPS>
<!--Kestrel是否启用HTTPS(SSL加密传输)-->
<Enable>false</Enable>
<!--SSL证书文件名 (需要将PFX格式的SSL证书放置于该配置文件的同级目录Deploy文件夹下) 如e5.sundayrx.net.pfx-->
<!--不填则默认使用Dev localhost 本地证书-->
<Certificate></Certificate>
<!--SSL证书密钥(PFX证书的访问密钥)-->
<Password></Password>
</HTTPS>
<!--共享站点配置,不共享可无视以下内容 (若要共享站点 请自备以下所需的配置信息 且配置中HTTPS必须启用)-->
<ShareSite>
<!--是否启用站点共享-->
<Enable>false</Enable>
<!--SMTP邮件发送支持-->
<SMTP>
<!--发件邮箱-->
<Email></Email>
<!--邮箱密钥-->
<Password></Password>
<!--SMTP服务器地址-->
<Host></Host>
<!--SMTP服务器端口-->
<Port>587</Port>
<!--SMTP服务器是否使用SSL传输-->
<EnableSSL>true</EnableSSL>
</SMTP>
<!--第三方OAuth登录支持(至少启用以下一种OAuth否则其他用户无法注册)-->
<OAuth>
<!--微软登录授权-->
<Microsoft>
<!--是否启用该OAuth-->
<Enable>true</Enable>
<!--应用程序Id-->
<ClientId></ClientId>
<!--应用程序访问机密-->
<ClientSecret></ClientSecret>
</Microsoft>
<!--GitHub登录授权-->
<Github>
<!--是否启用该OAuth-->
<Enable>true</Enable>
<!--应用程序Id-->
<ClientId></ClientId>
<!--应用程序访问机密-->
<ClientSecret></ClientSecret>
</Github>
</OAuth>
<!--站点系统设置-->
<System>
<!--站点启动后默认是否允许用户注册 建议为false-->
<AllowRegister>false</AllowRegister>
<!--站点启动后默认公告(换行符请使用 
 进行换行)-->
<Notice></Notice>
<!--站点运营者-->
<Master></Master>
<!--站点运营者推广链接-->
<MasterLink></MasterLink>
<!--站点新用户默认配额数-->
<DefaultQuota>1</DefaultQuota>
<!--站点自动特赦时间间隔 (单位:天 至少30天)-->
<AutoSpecialPardonInterval>30</AutoSpecialPardonInterval>
</System>
</ShareSite>
</Configuration>
其中管理员密码务必更改为仅你自己知道的强密码。
开放站点必须开启HTTPS:
Configuration.HTTPS.Enable设置为true,
Configuration.HTTPS.Certificate设置为我们上传到~/ms365e5renewx/e5renewx/Deploy/下的PFX文件的名称(包括后缀名),
Configuration.HTTPS.Password设置为PFX文件的密码。
SMTP部分:建议准备一个空闲的Outlook个人邮箱,将邮箱、密码依次填好,SMTP服务器地址填smtp.office365.com,端口无需改动。
开放站点若要支持某种第三方注册方式(微软账户或GitHub账户),则必须在Config.xml正确配置了相应的OAuth选项。
Github OAuth 获取方式
进入你的GitHub Profile
左侧栏底部Developer Settings
OAuth Apps -> New Oauth App
填写任意Application Name
Homepage URL 填写https://你的域名
Authorization callback URL 填写https://你的域名/signin-github
Register Application
Generate a new client secret
Client ID和Secret填入上述Config.xml相应位置
Microsoft OAuth 获取方式
进入你的Azure应用注册页面
新注册
受支持的账户类型->任何组织目录(任何 Azure AD 目录 – 多租户)中的帐户和个人 Microsoft 帐户(例如,Skype、Xbox)
重定向 URI :选择平台->Web,填入https://你的域名/signin-microsoft
注册后进入应用
应用->概述中的“应用程序(客户端) ID”填入Config.xml相应ClientId
应用->证书和密码->新客户端密码,生成的密码记录的“值”填入Config.xml相应ClientSecret
其余自定义参数释义参考服务程序作者的说明:https://blog.csdn.net/qq_33212020/article/details/119747634
全部填写完成后将Config.xml上传至你的服务器~/ms365e5renewx/e5renewx/Deploy/目录下。【可选】将服务程序源文件中解压出的wwwroot文件夹,完整地上传至服务器~/ms365e5renewx/目录下,其中/wwwroot/static/Donate.html为站点捐助页面的静态网页,可由站长自行编写。
运行Renew X
在docker-compose.yml所在目录下执行命令:
docker compose up -d
首次运行要拉取镜像,可能较慢,如果网络实在不佳,请考虑使用Docker Hub的镜像源。
如果部署了反向代理,正常情况下,访问你的域名即可进入首页,管理员后台路径/Admin/Login,密码你自己知道。
待服务启动后,尝试登陆自己的站点测试。如果日后需要迁移服务器,只需完整打包~/ms365e5renewx即可保证站点数据的完整性。比如笔者经常因为打折而在各家云服务商之间反复横跳,每次切换时仅仅需要把目录带到新服务器上,一个命令就可以快速重建站点。站点数据不大的情况下,甚至可以托管在GitHub仓库里进行管理同步(需要hook解决文件权限问题),这部分内容有空笔者会补充在文章里。
下线站点时,在docker-compose.yml所在目录使用:
docker compose down
添加应用和如何续订,网上和官方有很多教程,就不在这里叙述,本文只是记录搭建部署方法,为其他玩家提供了一点经验就好了。部署站点时参考了官方教程、Skyler的部署文档和Gladtbam的部署文档,一并感谢。
为了感谢作者及网友,本站部署的MS365 E5 Renew X也开放给大家注册续订,这里卖个关子,隐藏以下:
注:本站也提供作者服务程序源文件高速下载
-------本页类容已结束,喜欢请分享-------
感谢您的来访,获取更多精彩文章请收藏本站。

- 最新
- 最热
只看作者