你到底来这里干什么?首先,你需要这几样东西。AmazonLinux服务器,具有root权限(通过SSH)。NodeJS:https://nodejs.org/en/Express:npminstallexpress。Certbot第1步:安装包EPEL(ExtraPackagesforEnterpriseLinux)存储库包含我们安装Certbot所需的所有包,所以让我们先设置它。yum-yinstallepel-release接下来,我们将安装运行Let'sEncrypt所需的两个软件包:certbot和apache连接器。yum-yinstallcertbotpython-certbot-apache其次,您将使用certbot生成SSL证书。`$certbotcertonly--manual`。这张图是用Carbon生成的,我非常喜欢这个工具(感谢Turin先生)输入您的域名,不包括协议部分。例如:yourdomain.com甚至muchdomain.verysite。输入Y然后ENTER..注意两点。a-string:您现在要创建的文件的名称。只要创建了它,我们就会处理以下目录。a-challenge:打开刚刚创建的文件,将挑战字符串放入其中。除了这个挑战字符串,别无他物。**现在,不要继续。您需要使用Node和Express运行Web服务器。在某处打开您的终端并使用您想要的名称创建一个目录,例如:server。在此目录中,创建一个JS文件来运行您的服务器。在该目录下创建两个目录:.well-known,并在该目录下创建:acme-challenge。在目录:acme-challenge中放置您之前创建的文件:a-string。这是你应该拥有的。`server-----.well-known--------acme-challenge------------a-string---server.js`重要:其实这个文件名称不是字符串,它是一个很长的字母数字字符串。为了安全起见,我不能给你看我的。挑战也是如此……快完成了!使用您最喜欢的代码编辑器并复制粘贴此代码。//依赖关系constexpress=require('express');//配置并运行http服务器constapp=express();app.use(express.static(__dirname,{dotfiles:'allow'}));应用程序。listen(80,()=>{console.log('HTTP服务器在端口80上运行');});要验证一切正常,请打开浏览器并导航至。*http://yourdomain.com/.well-known/acme-challenge/a-string您的浏览器应该下载您的挑战文件。如果没有,请从头开始恢复所有内容。不要触摸你的shell,从目录和文件创建重新启动。如果一切顺利,返回您的shell并输入ENTER..最后一步万岁,您就完成了!.**复制并粘贴下面的代码,您将拥有一个全新的HTTPS服务器运行。//依赖constfs=require('fs');consthttp=require('http');consthttps=require('https');constexpress=require('快递');constapp=express();//证书常量privateKey=fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/privkey.pem','utf8');constcertificate=fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/cert.pem','utf8');constca=fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/chain.pem','utf8');constcredentials={key:privateKey,cert:证书,ca:ca};app.use((req,res)=>{res.send('你好!');});//同时启动http和https服务器consthttpServer=http.createServer(app);consthttpsServer=https.createServer(credentials,app);httpServer.listen(80,()=>{console.log('HTTP服务器在端口80上运行');});httpsServer.listen(443,()=>{console.log('HTTPS服务器在端口443上运行');});导航至:https://yourdomain.com,您应该会看到“你好!”。好吧,你已经读到本教程的最后一句:*YouErrorsmaybeencountered,pleaserestartthetutorialfromthebeginning.您可能会遇到错误,请从头开始重新开始教程,无论如何不要忘记将yourdomain.com修改为您的实际域名。a-string和a-challenge也是如此。如果没有效果,请让我道歉。StackOverflow将是您最好的朋友。本教程的目的是让您使用手动方法,以便您可以控制几乎所有内容。就我而言,这是唯一有效的解决方案。*“白杯卡布奇诺,木桌上的白色泡沫艺术”作者吴毅在Unsplash上??。使用www.DeepL.com/Translator进行翻译(免费版)
