当前位置: 首页 > news >正文

建站网站插件2023重大新闻事件10条

建站网站插件,2023重大新闻事件10条,网站建设谈单流程,网络做推广广告公司前言 21年的时候写了一个在群晖#xff08;黑群晖#xff09;下利用acme.sh自动申请Let‘s Encrypt的脚本工具 群晖使用acme自动申请Let‘s Encrypt证书脚本#xff0c;自动申请虽然解决了#xff0c;但是自动重载一直是一个问题#xff0c;本人也懒#xff0c;一想到去… 前言 21年的时候写了一个在群晖黑群晖下利用acme.sh自动申请Let‘s Encrypt的脚本工具 群晖使用acme自动申请Let‘s Encrypt证书脚本自动申请虽然解决了但是自动重载一直是一个问题本人也懒一想到去跟踪重载过程就头大所以就一直没有更新每一次证书快过期了就得手动登陆进去把全部证书的绑定替换两遍因为在网页端手动更换绑定会触发证书重载的刷新替换两次是因为第一次换成错的第二次换成正确的绑定仅此而已。 虽然拖了几年一直没跟踪这个自动化的实现过程但是心里始终是有点东西没放下今天终于解决了当然解决这个问题的动因还是因为我的公司域名需要加入到以前的脚本当中本来只是想把脚本做个优化支持多个账户同时申请想来想去一不做二不休还是一次性把自动重载的过程一起解决了 原理 自动重载的过程分为这么几步 1、重载使用ssl证书的系统服务2、重载反向代理的ssl证书3、重载WebStation的ssl证书4、特殊处理的系统服务5、重载web服务 原理介绍 1、重载使用ssl证书的系统服务 必要的系统服务包括以下几项service_map[DirectoryServer]pkgctl-DirectoryServer service_map[MailServer]pkgctl-MailServer service_map[ReverseProxy]nginx service_map[SynologyDrive]pkgctl-SynologyDrive service_map[WebDAVServer]pkgctl-WebDAVServer service_map[WebStation]pkgctl-WebStation service_map[smbftpd]ftpd在INFO文件的绑定中看到的DirectoryServer 服务名真实调用需要使用的服务名称为pkgctl-DirectoryServer 重载的命令/usr/syno/sbin/synoservice --reload pkgctl-DirectoryServer其他几项也是同样的不过多介绍特殊的服务有1个WebDAV这个放到步骤四介绍2、重载反向代理的ssl证书 反向代理的重载过程分为两步 2.1、拷贝证书到反向代理证书存放的目录 # 复制证书文件 cp -f /usr/syno/etc/certificate/_archive/xxxxxx/cert.pem /usr/syno/etc/certificate/ReverseProxy/$uuid/cert.pem cp -f /usr/syno/etc/certificate/_archive/xxxxxx/privkey.pem /usr/syno/etc/certificate/ReverseProxy/$uuid/privkey.pem cp -f /usr/syno/etc/certificate/_archive/xxxxxx/fullchain.pem /usr/syno/etc/certificate/ReverseProxy/$uuid/fullchain.pem2.2、调用反向代理的重载指令 /usr/libexec/certificate.d/ReverseProxy $uuidps:$uuid进入到/usr/syno/etc/certificate/ReverseProxy/目录下直接查看文件夹名称就是了另外INFO的配置信息中也存在有$uuid 3、重载WebStation的ssl证书 3.1 拷贝证书文件到目录/usr/local/etc/certificate/WebStation/$uuid 下 cp -f /usr/syno/etc/certificate/_archive/xxxxxx/cert.pem /usr/local/etc/certificate/WebStation/$uuid/cert.pem cp -f /usr/syno/etc/certificate/_archive/xxxxxx//privkey.pem /usr/local/etc/certificate/WebStation/$uuid/privkey.pem cp -f /usr/syno/etc/certificate/_archive/xxxxxx//fullchain.pem /usr/local/etc/certificate/WebStation/$uuid/fullchain.pem3.2 重载WebStation证书命令 /usr/local/libexec/certificate.d/WebStation $uuidps:vhost类型的$uuid和反向代理类型的$uuid区别就是以vhost_开头4、特殊处理的系统服务 WebDAV是一个特殊的服务和其他系统服务的重载方式不同如下/var/packages/WebDAVServer/target/scripts/synowebdavserver_httpd_control.sh stop sleep 2 /var/packages/WebDAVServer/target/scripts/synowebdavserver_httpd_control.sh start5、重载web服务 重启web服务就看各位使用的是apache还是nginx了我使用的nginx所以对于apache也没做测试和跟进有需要的同学抛砖引玉自行排查一下/usr/syno/sbin/synoservice --reload nginx脚本代码片段 大概过程就是如上几个步骤有补充的同学请留言下面是我的代码片段。这次我只放了片段出来是因为我今天发现我的群晖上的wget不支持https了就连curl也不能正确使用Tslv1.2库本来想源码编译openssl库升级一下结果发现我的设备能安装的gcc版本又太低无奈之下我又拿golang写了个后端放到另外一台机器上跑完整的脚本代码需要配合后端运行大概的逻辑是 后端定时任务申请证书并保存且提供api给群晖下载证书 - 群晖定时任务下载证书到本地 - 自动部署并重载证书 因为临时抓起来的事情后端功能仅限于自己使用我担心安全意识薄弱的同学拿到自己的公网服务器上部署那就完蛋了。我的部署都在局域网内像这种不需要对公网开放的服务类项目够用就行所以暂时就不发全部的代码到帖子上了下面这段代码大家拿去和我21年那篇帖子的代码一结合我相信就能解决单用户申请ssl证书的需求了。 如果大家强烈要求我发放完整代码的话可以给我留言。 自动部署并重载ssl证书的代码片段 # 获取脚本所在目录的绝对路径 INFO_DIR/usr/syno/etc/certificate/_archive INFO_FILE/usr/syno/etc/certificate/_archive/INFO# 重新加载证书 ReloadCerts() {echo 开始重新加载证书...# 定义服务名称映射declare -A service_mapservice_map[DirectoryServer]pkgctl-DirectoryServerservice_map[MailServer]pkgctl-MailServerservice_map[ReverseProxy]nginxservice_map[SynologyDrive]pkgctl-SynologyDriveservice_map[WebDAVServer]pkgctl-WebDAVServerservice_map[WebStation]pkgctl-WebStationservice_map[smbftpd]ftpd# 获取所有需要重载的服务名称services$(jq -r . as $root |[to_entries[] |select(.value.services ! null) |.value.services[] |select(.service ! null) |.subscriber] | unique[] $INFO_FILE)# 重载每个服务for service in $services; doif [ ${service_map[$service]} ! ]; thenactual_service${service_map[$service]}echo 重载服务: $service (${actual_service})if [ -f /usr/syno/sbin/synoservice ]; then# 尝试重载服务/usr/syno/sbin/synoservice --reload $actual_service || {echo 尝试重启服务: $actual_service/usr/syno/sbin/synoservice --restart $actual_service}# 如果是 nginx给它一点时间完成重载if [ $actual_service nginx ]; thensleep 2fifielseecho 跳过未知服务: $servicefidone# 更新并重载反向代理和 vhost 证书echo 开始处理反向代理和 vhost 证书...# 从 INFO 文件中获取证书和服务的映射关系jq -r . as $root |to_entries[] |select(.value.services ! null) |.key as $cert_name |.value.services[] |select(.subscriber ReverseProxy or .subscriber WebStation) |[$cert_name, .service, .subscriber] |tsv $INFO_FILE | while IFS$\t read -r cert_name service_uuid subscriber; do# 跳过空值if [ -z $cert_name ] || [ -z $service_uuid ]; thencontinuefi# 源证书目录cert_dir$INFO_DIR/$cert_nameif [[ $service_uuid vhost_* ]] [ $subscriber WebStation ]; then# 处理 vhost 证书vhost_dir/usr/local/etc/certificate/WebStation/$service_uuidif [ -d $cert_dir ]; thenecho 更新 vhost 证书 $cert_name 到 UUID: $service_uuid# 确保目标目录存在mkdir -p $vhost_dir# 复制证书文件cp -f $cert_dir/cert.pem $vhost_dir/cert.pemcp -f $cert_dir/privkey.pem $vhost_dir/privkey.pemcp -f $cert_dir/fullchain.pem $vhost_dir/fullchain.pem# 设置正确的权限chmod 400 $vhost_dir/*.pem# 重载 vhost 证书echo 重载 vhost 证书 UUID: $service_uuid/usr/local/libexec/certificate.d/WebStation $service_uuidsleep 1fielif [ $subscriber ReverseProxy ]; then# 处理反向代理证书proxy_dir/usr/syno/etc/certificate/ReverseProxy/$service_uuidif [ -d $cert_dir ] [ -d $proxy_dir ]; thenecho 更新反向代理证书 $cert_name 到 UUID: $service_uuid# 确保目标目录存在mkdir -p $proxy_dir# 复制证书文件cp -f $cert_dir/cert.pem $proxy_dir/cert.pemcp -f $cert_dir/privkey.pem $proxy_dir/privkey.pemcp -f $cert_dir/fullchain.pem $proxy_dir/fullchain.pem# 设置正确的权限chmod 400 $proxy_dir/*.pem# 重载反向代理证书echo 重载反向代理证书 UUID: $uuid/usr/libexec/certificate.d/ReverseProxy $uuidsleep 1fifidone# 检查并重启 WebDAV 服务if [ -f /var/packages/WebDAVServer/scripts/start-stop-status ]; thenecho 检查 WebDAV 服务...if /var/packages/WebDAVServer/scripts/start-stop-status status /dev/null 21; thenecho 重启 WebDAV 服务.../var/packages/WebDAVServer/target/scripts/synowebdavserver_httpd_control.sh stopsleep 2/var/packages/WebDAVServer/target/scripts/synowebdavserver_httpd_control.sh startsleep 2if ! /var/packages/WebDAVServer/scripts/start-stop-status status /dev/null 21; thenecho 警告WebDAV 服务可能未正确启动elseecho WebDAV 服务已成功重启fielseecho WebDAV 服务未运行跳过重启fifi# 最后再次重载 nginx 以确保所有更改生效if [ -f /usr/syno/sbin/synoservice ]; thenecho 最后重载 nginx 服务.../usr/syno/sbin/synoservice --reload nginxfiecho 证书重新加载完成return 0 }case $1 in *)ReloadCerts;; esac
http://www.dnsts.com.cn/news/225191.html

相关文章:

  • 军事网站模板下载如何在家做电商
  • 网站访问慢原因在线设计软件免费版
  • 园州网站建设大气的化妆品网站名
  • 网站建设教程步骤wordpress编辑器前端
  • 泰和县网站免费建站wordpress别名 文章id
  • 网站管理员是干什么的网站设计风
  • 网站 数据库 sql 导入数据库文件wordpress 媒体库
  • 广州做网站海珠信科赣州网站建设江西网站建设
  • 天津网站吗qq炫舞做浴缸的网站
  • 罗湖网站制作平果信息网
  • 企业网站seo案例分析外贸公司网站案例
  • 网页设计与制作建立站点实验报告域名注册官方网站
  • 网站有时打不开设计封面
  • 有了网站源码 怎么建设网站dw网站模板
  • 帝国cms灵动标签做网站地图微信朋友圈营销方案
  • 十堰网站制作公司wordpress网站音乐播放
  • 建设网站的技术性背景做俄语网站建设
  • 网站导航作用海外版tiktok官网入口
  • nas可以做网站下载服务器吗个人定制网站怎么做
  • 图片做视频网站有哪些推广策略怎么写
  • 下载的网站模板怎么去掉域名前的图标网站程序源代码
  • 谷歌seo网站怎么做产品分类优化设计五年级下册数学答案
  • 网站系统深圳商城网站制作公司
  • 计算机网站建设考试试卷wordpress下拉筛选
  • c 网站开发做小型企业网站多少钱
  • 成品网站货源入口牛网站建设
  • php心水主论坛网站制作网页设计人工智能平台
  • 企业网站建设 哪个公司做得好营销网站做得好的公司
  • 怎样让网站排名优化工广州教育平台登录入口
  • 闽侯福州网站建设小米发布会ppt模板