【玩转Lighthouse】手把手教你轻量服务器Windows系统IIS下自动申请、续签SSL证书

{“type”:”doc”,”content”:[{“type”:”heading”,”attrs”:{“id”:”af648994-0882-45f4-b408-f60ba71d649b”,”textalign”:”inherit”,”indent”:0,”level”:1,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”前言:”}]},{“type”:”paragraph”,”attrs”:{“id”:”07931d64-52aa-4c06-82ab-872729770ba1″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”轻量应用服务器(tencent cloud lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,特别适合中小企业和开发者。”}]},{“type”:”paragraph”,”attrs”:{“id”:”48833549-f41b-48af-a0d0-0ca24461da21″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”现在无论是网站建设还是小程序开发等都需要https,ssl证书有都过期的限制,商业证书一般一年,免费证书一般是90天,如果没有及时续期ssl证书,那么将会影响线上程序正常运行。”}]},{“type”:”paragraph”,”attrs”:{“id”:”c08e5381-0243-4c7d-bc74-70d174717ec2″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”在linux下面,有宝塔、1panel等工具,在部署网站的时候,可以自动申请和续签let’s encrypt的ssl证书。”}]},{“type”:”paragraph”,”attrs”:{“id”:”a62e8ce4-f2da-4010-96da-a5455c2cca72″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”而由于本人是.net的开发者,虽然在linux下面部署应用也方便,但由于目前大部分应用还是在windows服务器上部署,所以,也需要找到一种可以在windows下自动申请、续签ssl证书的办法。”}]},{“type”:”paragraph”,”attrs”:{“id”:”b0c83bb5-bb2c-4d6e-819c-864a76cd72e3″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”经过研究,win-acme,这款工具非常适合,可以做到自动申请,并安装配置到iis。并简单的添加一个任务即可自动续签,非常推荐大家使用。”}]},{“type”:”heading”,”attrs”:{“id”:”cb7f73c9-92d0-4f72-8f85-b017bccf113a”,”textalign”:”inherit”,”indent”:0,”level”:1,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”一、win-acme 项目地址和下载”}]},{“type”:”paragraph”,”attrs”:{“id”:”b78e23eb-e25a-4c74-af05-e2a9030cd58c”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”marks”:[{“type”:”link”,”attrs”:{“href”:”https://github.com/win-acme/win-acme”,”target”:”_blank”,”rel”:”noopener noreferrer nofollow”,”class”:null}}],”text”:”https://github.com/win-acme/win-acme”}]},{“type”:”paragraph”,”attrs”:{“id”:”7bbe475f-b170-47d7-9d9b-458386369add”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”截至本稿,最新版是 2.2.9.1,我们到这下载页面,”},{“type”:”text”,”marks”:[{“type”:”link”,”attrs”:{“href”:”https://github.com/win-acme/win-acme/releases”,”target”:”_blank”,”rel”:”noopener noreferrer nofollow”,”class”:null}}],”text”:”https://github.com/win-acme/win-acme/releases”},{“type”:”text”,”text”:” ,推荐下载 win-acme.v2.2.9.1701.x64.pluggable.zip 这个版本。自带运行时,不需要安装.net 运行时。”}]},{“type”:”image”,”attrs”:{“id”:”b031a10c-6862-4c97-b84f-27f371a5d54a”,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/9aff73b4a9c7804f58f2284fd73680d2.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:1044,”aspectratio”:”2.473934″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”heading”,”attrs”:{“id”:”0edabd37-7ad7-43aa-b48e-57552700a21c”,”textalign”:”inherit”,”indent”:0,”level”:1,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”二、申请证书和部署证书”}]},{“type”:”paragraph”,”attrs”:{“id”:”eff8daef-e3d4-4877-951c-94b748bcd0b8″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”将下载软件解压到轻量服务器一个位置,例如我解压到这个位置:”}]},{“type”:”image”,”attrs”:{“id”:”20015dbb-98a7-40e2-aff5-2899a2995ae1″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/8e379f83afcaafd11bab2cb3062a9abb.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:648,”aspectratio”:”1.596059″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”6cf094b6-36db-44c0-9e12-1afc6a2a30af”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”双击打开 “},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”wacs.exe”}]},{“type”:”image”,”attrs”:{“id”:”7b0e9a87-bd9c-415e-aecf-cefa33d31f2a”,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/94e85ec04256a87a369d7615fc116f9f.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:977,”aspectratio”:”1.915686″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”f580a6e1-19e8-40a9-af6c-317b5ee4d56d”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”选择”},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”n”},{“type”:”text”,”text”:”。使用默认设置进行申请证书,这时候他会自动识别并列出iis的所有站点,这里我只有一个站点绑定域名,就显示如下:”}]},{“type”:”image”,”attrs”:{“id”:”e10c75a8-0968-49b9-b048-acafeb4afcf1″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/8bfd25a761d29ebac802a0e95eb267db.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:1100,”aspectratio”:”2.705882″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”0006dd2e-7de4-4a78-b4c0-434bc2d3cfd7″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false}},{“type”:”image”,”attrs”:{“id”:”72aefcb3-0092-4588-9b41-517b3b5cf102″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/c9c2d06eb12d52717d4a3e3d174fa3d2.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:978,”aspectratio”:”1.906433″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”5d8beeae-913f-4dd2-8b92-8fcee1107dbb”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”跟着选2这个站点。注意,这里是需要有绑定域名的iis站点,没有绑定域名的,他不会列出来。”}]},{“type”:”image”,”attrs”:{“id”:”d9e7c230-b633-4bed-ae43-bbf961887c09″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/cd30a34c464f2beda439fb07c635ced8.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:980,”aspectratio”:”1.910331″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”53db90e6-2224-42d3-8b05-ec598b9eacf6″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”接下来,就会提示你是哪个站点,然后就是查看协议和同意协议。然后让你输入邮箱。最后他就自动去验证、下载证书和部署,这个过程全自动。”}]},{“type”:”image”,”attrs”:{“id”:”944c7472-efc3-479b-a49e-c9dfb6ec2729″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/722c668bba83286c26e09a7c0bc17899.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:974,”aspectratio”:”1.909804″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”1f2ddba6-a7f2-44e0-a94b-af399c02e545″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”这样就自动帮你部署好了。也有证书过期时间,我们可以回到iis刷新一下站点,就可以看到他已经自动帮你加上证书了:”}]},{“type”:”image”,”attrs”:{“id”:”1c59dadf-0feb-4842-adfa-88ce29f0a82d”,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/5503601153aba9022a90dddf0ff7f7cc.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:1100,”aspectratio”:”1.901333″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”heading”,”attrs”:{“id”:”7d7e935c-1c7f-4416-9513-92f6fa9aae22″,”textalign”:”inherit”,”indent”:0,”level”:1,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”三、自动续签”}]},{“type”:”paragraph”,”attrs”:{“id”:”62fdb93b-bb56-4887-9445-7d0e6d637765″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”如果iis上有多个站点,或者一个站点绑定多个域名,可以按照以上步骤进行申请并绑定。当我们把所有需要的站点都申请好ssl证书后,我们可以进行添加一个定时任务,让程序自动更新证书。”}]},{“type”:”paragraph”,”attrs”:{“id”:”0565b34b-7f97-4946-b5c1-45f2fb863364″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”这里我们使用一个脚本来做定时任务,这样有个好处,就是可以测试能不能正常的运行”}]},{“type”:”heading”,”attrs”:{“id”:”10de49ce-9dc0-40a2-9979-b106423b5cf9″,”textalign”:”inherit”,”indent”:0,”level”:2,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”3.1、创建一个”},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”renew_cert.bat”},{“type”:”text”,”text”:” 文件,内如如下,程序路径,请根据实际情况填写。”}]},{“type”:”codeblock”,”attrs”:{“id”:”92107531-4e72-4bb6-8fa7-cf98d43bc61c”,”language”:”javascript”,”theme”:”atom-one-dark”,”runtimes”:0,”ishoverdraghandle”:false,”key”:”fiugv”,”languagebyai”:”javascript”},”content”:[{“type”:”text”,”text”:”chcp 65001@echo offem =============================================em 自动续签 win-acme https 证书脚本em =============================================rem 设置当前路径cd /d c:softwin-acmeem 执行自动更新命令(静默模式)wacs.exe –renewem =============================================echo [%date% %time%] 证书自动更新任务已执行完毕。”}]},{“type”:”image”,”attrs”:{“id”:”c9470691-c7ec-42e7-ab29-8084237e5bf4″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/4bead97798e58e74d40d456175a2c71b.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:1100,”aspectratio”:”1.754277″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”heading”,”attrs”:{“id”:”a568e1b7-d830-4769-b509-2face1a57ff5″,”textalign”:”inherit”,”indent”:0,”level”:2,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”3.2、测试脚本是否正常”}]},{“type”:”paragraph”,”attrs”:{“id”:”8511c2ac-e177-458b-9985-75e0ebdf8603″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”然后我们先用cmd运行一下:”}]},{“type”:”image”,”attrs”:{“id”:”4da8f6ae-d8ad-42bb-a130-d37e3faa1fa0″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/147e7bc2106428e037750951fc3301c9.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:981,”aspectratio”:”1.923529″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”31317a3c-49f4-47af-86f4-768ef287e8ff”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”可以看到自动运行成功,那就说明这个脚本文件可以用。”}]},{“type”:”heading”,”attrs”:{“id”:”67f1651a-68c1-4953-a36a-30532a5bf32d”,”textalign”:”inherit”,”indent”:0,”level”:2,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”3.3、添加定时任务自动执行”}]},{“type”:”paragraph”,”attrs”:{“id”:”b06f1694-67bd-401c-8056-92caa0ad644e”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”按 “},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”win + r”},{“type”:”text”,”text”:” 键打开“运行”对话框,然后输入 “},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”taskschd.msc”},{“type”:”text”,”text”:” 并按回车键,这将打开“任务计划程序”窗口。”}]},{“type”:”image”,”attrs”:{“id”:”39d499e1-91a4-4456-ba07-e46b1478ac34″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/af45b6fcdf640e08dce802433b76d935.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:1100,”aspectratio”:”1.728863″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”7e9f7294-a389-45ae-a2b6-195d4f684ab3″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”点击”},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”创建任务”},{“type”:”text”,”text”:” ,添加一个任务,名称输入,勾选 “},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”不管用户是否登录都要运行”},{“type”:”text”,”text”:”,”},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”使用最高权限运行”},{“type”:”text”,”text”:” 。”}]},{“type”:”image”,”attrs”:{“id”:”88d25209-6291-482f-a48b-299cdac315ea”,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/cbf49727b4aa1feb6853a85f943bf0e1.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:633,”aspectratio”:”1.161468″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”e0178510-16d6-4e64-b0ec-a665dce7e20e”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”切换到触发器,新建触发器:”}]},{“type”:”image”,”attrs”:{“id”:”c9e55e01-f4a2-4537-b123-dd4086a4f5ac”,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/1cedf869326df82a75ff0d5575a00320.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:590,”aspectratio”:”1.128107″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”15f6029a-27a8-44b5-8c6d-e92007c1fc14″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”这里我选择每天都执行,选择一个系统比较空闲的时间,半夜三更最适合干这种事。”}]},{“type”:”paragraph”,”attrs”:{“id”:”e9b953c0-26b0-4657-99e5-3022664c2ed3″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”切换到”},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”操作”},{“type”:”text”,”text”:”,”},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”新建操作”},{“type”:”text”,”text”:”,选择启动程序,浏览选择该脚本”}]},{“type”:”image”,”attrs”:{“id”:”6a484d8a-9403-4e4e-9294-568e04835da9″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/9e967ce2d3684cc0b3cb89644cab26ef.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:632,”aspectratio”:”1.174721″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”image”,”attrs”:{“id”:”1f5a80c1-7edb-46eb-9be2-07546d10c270″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/048e30f07e104d2b55be25afabd4f8dc.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:461,”aspectratio”:”0.907480″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”ff64a566-3abe-4683-82b5-3798c63fbff5″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”最后确定后,就可以看到新建定时任务成功:”}]},{“type”:”image”,”attrs”:{“id”:”3ba53852-78ad-4cc9-a71c-adf239a8dff3″,”src”:”https://developer.qcloudimg.com/http-save/audit-1261681/888f1ff9383d07ed0ecf21c3fa872b4a.png”,”extension”:”png”,”align”:”center”,”alt”:””,”showalt”:false,”href”:””,”boxshadow”:””,”width”:1100,”aspectratio”:”1.730713″,”status”:”success”,”showtext”:true,”ispercentage”:false,”percentage”:0,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”a8011463-1da9-40f4-b4c9-16e4c1a58f20″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”至此。也就完成ssl证书的申请并自动续签。”}]},{“type”:”heading”,”attrs”:{“id”:”b48dae9b-d5fa-4c23-a7b0-985b81a385d0″,”textalign”:”inherit”,”indent”:0,”level”:1,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”总结:”}]},{“type”:”paragraph”,”attrs”:{“id”:”514914ca-c79d-46eb-a1b5-115b722a91dc”,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”使用 “},{“type”:”text”,”marks”:[{“type”:”code”}],”text”:”win-acme”},{“type”:”text”,”text”:” 对windows server的站点进行自动申请和使用自动任务进行续签,可以极大方便windows用户。而且这个过程也几乎都是通过ui交互界面进行配置,对用户的操作要求不高。”}]},{“type”:”paragraph”,”attrs”:{“id”:”f3042847-996a-4236-881f-96620fd43134″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false},”content”:[{“type”:”text”,”text”:”这就对使用windows的轻量用户来说,可以简单方便的使用iis进行站点部署,也省去三个月需要重新申请并部署证书的繁琐操作。”}]},{“type”:”paragraph”,”attrs”:{“id”:”87689ff4-f93b-400c-a808-35bfb71a99c3″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false}},{“type”:”paragraph”,”attrs”:{“id”:”c3f237fd-8cc6-45e2-b249-4913068a2b14″,”textalign”:”inherit”,”indent”:0,”color”:null,”background”:null,”ishoverdraghandle”:false}}]}

博思AIPPT 博思AIPPT

博思AIPPT来了,海量PPT模板任选,零基础也能快速用AI制作PPT。

博思AIPPT 117 查看详情 博思AIPPT

以上就是【玩转Lighthouse】手把手教你轻量服务器Windows系统IIS下自动申请、续签SSL证书的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/985575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
变异者电脑主机好吗? pubg变异者怎么通关?
上一篇 2025年12月1日 21:24:24
相对定位元素的偏移如何计算_CSS top left 等属性详解
下一篇 2025年12月1日 21:24:24

相关推荐

  • composer require-dev和require有什么不同_Composer Require与Require-Dev区别解析

    require用于声明项目运行必需的依赖,如框架、数据库组件和第三方SDK,这些包会随项目部署到生产环境;2. require-dev用于声明仅在开发和测试阶段需要的工具,如PHPUnit、PHPStan、Faker等,不会默认部署到生产环境;3. 安装时composer install根据环境决定…

    2026年5月10日
    1000
  • 修复Django电商项目中AJAX过滤产品列表图片不显示问题

    在Django电商项目中,当使用AJAX动态加载过滤后的产品列表时,常遇到图片无法正常显示的问题。这通常是由于前端模板中图片加载方式(如data-setbg属性结合JavaScript库)与AJAX动态内容更新机制不兼容所致。解决方案是直接在AJAX返回的HTML中使用标准的标签来渲染图片,确保浏览…

    2026年5月10日
    000
  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • 利用海象运算符简化条件赋值:Python教程与最佳实践

    本文旨在探讨Python中海象运算符(:=)在条件赋值场景下的应用。通过对比传统if/else语句与海象运算符,以及条件表达式,分析海象运算符在简化代码、提高可读性方面的优势与局限性。并通过具体示例,展示如何在列表推导式等场景下合理使用海象运算符,同时强调其潜在的复杂性及替代方案,帮助开发者更好地掌…

    2026年5月10日
    100
  • Debian syslog性能优化技巧有哪些

    提升Debian系统syslog (通常基于rsyslog)性能,关键在于精简配置和高效处理日志。以下策略能有效优化日志管理,提升系统整体性能: 精简配置,高效加载: 在rsyslog配置文件中,仅加载必要的输入、输出和解析模块。 使用全局指令设置日志级别和格式,避免不必要的处理。 自定义模板: 创…

    2026年5月10日
    000
  • 怎么在PHP代码中实现图片上传功能_PHP图片上传功能实现与安全处理教程

    首先创建含enctype的HTML表单,再用PHP接收文件,检查目录、移动临时文件,验证类型与大小,生成唯一文件名,并调整php.ini限制以确保上传成功。 如果您尝试在PHP项目中添加图片上传功能,但服务器无法正确接收或保存文件,则可能是由于表单配置、文件处理逻辑或安全限制的问题。以下是实现该功能…

    2026年5月10日
    100
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • 修复点击时按钮抖动:CSS垂直对齐实践

    本文探讨了在Web开发中,交互式按钮(如播放/暂停按钮)在点击时发生意外垂直位移的问题。通过分析CSS样式变化对元素布局的影响,我们发现这是由于按钮不同状态下的边框样式和内边距改变,以及默认的垂直对齐行为共同作用所致。核心解决方案是利用CSS的vertical-align属性,将其设置为middle…

    2026年5月10日
    100
  • Golang goroutine与channel调试技巧

    使用go run -race检测数据竞争,结合runtime.NumGoroutine监控协程数量,通过pprof分析阻塞调用栈,利用select超时避免永久阻塞,有效排查goroutine泄漏、死锁和数据竞争问题。 Go语言的goroutine和channel是并发编程的核心,但它们也带来了调试上…

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    100
  • 前端缓存策略与JavaScript存储管理

    根据数据特性选择合适的存储方式并制定清晰的读写与清理逻辑,能显著提升前端性能;合理运用Cookie、localStorage、sessionStorage、IndexedDB及Cache API,结合缓存策略与定期清理机制,可在保证用户体验的同时避免安全与性能隐患。 前端缓存和JavaScript存…

    2026年5月10日
    200
  • 网站标题关键词更新后,搜索引擎为何仍显示旧标题?

    网站标题更新后,搜索引擎为何显示旧标题? 网站SEO优化中,站长常修改网站标题关键词,期望搜索结果显示自定义标题。然而,即使更新标签、meta keywords、meta description和结构化数据中的name属性后,搜索结果仍显示旧标题,这令人费解。本文将对此进行解释。 问题:站长修改了网…

    2026年5月10日
    100
  • HTML5网页如何实现手势操作 HTML5网页移动端交互的处理技巧

    首先利用原生touch事件实现滑动判断,再通过preventDefault解决滚动冲突,接着引入Hammer.js处理复杂手势,最后通过优化点击区域、避免事件冲突和增加视觉反馈提升体验。 在移动端浏览器中,HTML5网页可以通过触摸事件实现手势操作,提升用户体验。虽然原生JavaScript提供了基…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • 如何插入查询结果数据_SQL插入Select查询结果方法

    如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法

    使用INSERT INTO…SELECT语句可高效插入数据,通过NOT EXISTS、LEFT JOIN、MERGE语句或唯一约束避免重复;表结构不一致时可通过别名、类型转换、默认值或计算字段处理;结合存储过程可提升可维护性,支持参数化与动态SQL。 将查询结果数据插入到另一个表中,可以…

    2026年5月10日 用户投稿
    000
  • python中zip函数详解 python多序列压缩zip函数应用场景

    zip函数的应用场景包括:1) 同时遍历多个序列,2) 合并多个列表的数据,3) 数据分析和科学计算中的元素运算,4) 处理csv文件,5) 性能优化。zip函数是一个强大的工具,能够简化代码并提高处理多个序列时的效率。 在Python中,zip函数是一个非常有用的工具,它能够将多个可迭代对象打包成…

    2026年5月10日
    000
  • JavaScript 闭包:理解闭包原理与内存泄漏问题

    闭包是函数访问其外部作用域变量的能力,即使外部函数已执行完毕。如 inner 函数引用 outer 中的 count,形成闭包,使变量持久存在。闭包本身无害,但可能因延长变量生命周期导致内存泄漏,例如事件监听器引用大对象时。若未及时清理 DOM 事件或定时器,闭包会阻止垃圾回收,造成内存占用过高。解…

    2026年5月10日
    100
  • JavaScript 动态菜单点击高亮效果实现教程

    本教程详细介绍了如何使用 JavaScript 实现动态菜单的点击高亮功能。通过事件委托和状态管理,当用户点击菜单项时,被点击项会高亮显示(绿色),同时其他菜单项恢复默认样式(白色)。这种方法避免了不必要的DOM操作,提高了性能和代码可维护性,确保了无论点击方向如何,功能都能稳定运行。 动态菜单高亮…

    2026年5月10日
    200
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    100

发表回复

登录后才能评论
关注微信