设置带有 SSH 服务器、邮件服务器和 SSL 证书的 Amazon EC2 实例






4.93/5 (30投票s)
您的端到端、逐步指南。
目录
引言
本文是关于以下内容的完整端到端教程:
- 设置 Amazon EC2 Windows 免费套餐实例
- 为您的实例创建静态 IP
- 使远程桌面与您的实例协同工作
- 设置 SSH 服务器
- 设置 PuTTY 和 WinSCP 用于终端和文件传输
- 将您的实例与域关联(我将使用 Namecheap)
- 设置电子邮件服务器
- 为您的 Web 服务器创建真实的 SSL 证书
在此过程中,我们将学习各种工具,例如
- PuTTY
- PuTTYgen
- WinSCP
- MailEnable
- Bitvise SSH 服务器
- netsh
- certutil
我们还将学习
- 配置 EC2 实例上的端口
- 配置 Windows 防火墙上的端口
- 配置 Outlook
- 设置 SSL 证书
这里有很多步骤,我写这篇文章的原因是这个过程在任何一个综合的地方都没有被记录下来——你在这里看到的是许多不同部分和时间摸索所有这些东西的结果,特别是设置电子邮件服务器和获取 SSL 证书的痛点(这需要一个到实例域的电子邮件服务器!)
预备步骤:创建 AWS 账户
在继续之前,您需要一个 AWS 账户。如果您没有,请立即在此处创建一个。创建账户后,您将看到一个庞大的亚马逊网络服务 (AWS) 列表。选择第一个,EC@ 云中的虚拟服务器。
创建 AWS 免费套餐实例
在 AWS EC2 控制面板中,单击“启动实例”按钮。
选择 Microsoft Windows Server 2012 R2 Base(符合 Windows 免费套餐条件)Amazon Machine Image (AMI)
点击右侧的“选择”
选择 t2.micro(符合免费套餐条件)实例
点击“审核和启动”
在下一个屏幕上,点击“启动”(我们稍后会编辑安全设置)。
为远程桌面访问和管理员密码创建密钥对
接下来,我们为远程桌面访问(RDP)创建一个密钥对。会弹出一个对话框,显示“选择现有密钥对或创建新密钥对”。选择“创建新密钥对”并输入密钥对名称,然后点击“下载密钥对”。
密钥对下载后,请将其保存在一个_安全位置_。此密钥对是获取用于登录实例的密码所必需的,不应被其他人访问。
接下来,点击“启动实例”
下一个屏幕会提供一些关于监控您的免费使用套餐以及如何连接到您的 Windows 实例的信息。点击“查看实例”。
当您的实例正在初始化时,您将看到类似以下内容(我已编辑了特定于我创建的服务器的信息)
等到实例状态从“正在初始化”变为“2/2 检查已通过:”
记住实例 ID!
创建弹性 IP
实例初始化后,我们将为该实例创建一个弹性 IP(静态 IP),以便将域名与我们实例的 IP 地址关联起来。点击左侧菜单栏中的“弹性 IP”。
点击“分配新地址”按钮
确认对话框
点击“关闭”按钮。您将在弹性 IP 列表中看到一个条目。
请注意,此弹性 IP 未关联任何实例。选择新创建的弹性 IP(左侧的复选框)。
将弹性 IP 与实例关联
然后,从“操作”菜单中,选择“关联地址”
您还记得实例 ID 吗?点击“实例”右侧的框并选择您的实例 ID
然后点击“关联”
记住您的弹性 IP!
获取管理员账户密码
点击左侧菜单栏顶部的“EC2 控制面板”
然后点击“正在运行的实例”(我有 4 个实例,如果您以前做过,您的数量将是 1 或其他值)
现在,如果您选择(左侧复选框)您的实例,您将看到公共 IP 和弹性 IP(在描述选项卡右下方显示)都是相同的。
点击“连接”
在“连接到您的实例”弹出窗口中,在执行任何其他操作之前,单击“获取密码”。
在下一个弹出窗口中,点击“选择文件”并选择您在创建实例时下载的“pem”文件
文件选择后,点击“解密密码”
保存此密码!
连接到您的实例
现在您可以下载 RDP 文件或自行启动远程桌面连接。如果您选择后者,请输入计算机名称的 IP 地址,并在展开“选项”时,输入用户名并决定是否保存您的凭据。您可能希望保存您的 RDP 连接以备将来使用。
点击“连接”按钮,然后在确认对话框中再次点击“连接”按钮,然后输入上面解密得到的密码。
您将收到一个对话框,指示无法对远程计算机进行身份验证。点击“不再询问我此计算机的连接”,然后点击“是”按钮以继续连接。
请稍等一分钟左右,让您的实例初始化您的首次连接。完成后,您将看到桌面(比这里缩小截图大得多!)
设置安全复制 (SCP)
我们可以安装 FileZilla 并设置 FTP,但我更喜欢使用 SSH 服务器,因为它提供文件复制和终端(命令提示符)连接。
安装 Bitvise SSH 服务器
使用 SSH 服务器管理您的实例要容易得多。您可以使用 PuTTY 和 WinSCP 等工具非常轻松地访问命令行和传输文件。本节介绍如何在您的实例上安装 Bitvise SSH 服务器。请注意,此产品仅限于非商业用途免费使用。
在实例上使用 Internet Explorer 是一种痛苦的体验,您需要不断为访问的每个页面添加例外。与其绕过这个问题(通常通过安装 Chrome 或 Firefox),不如直接将 Bitvise SSH 服务器(此处)下载到您的客户端计算机(而不是实例)。下载后,您可以右键单击安装 exe,选择复制,然后通过 RDP 连接将安装 exe 粘贴到实例的桌面。上传安装程序有点慢,但是一旦我们能够进行 SCP(安全复制),我们就无需再次经历复制-粘贴过程。
复制到桌面后,双击安装程序
同意条款(如果您的实例用于商业用途,请购买一份,或者寻找其他 SSH 服务器),然后点击“安装”按钮。不要更改任何默认选项。
在第二个对话框中,选择相应的版本,商业用途的标准版或非商业用途的个人版。
如果您选择个人版,系统会提示您填写姓名。
安装完成后,在最后一个对话框中点击“确定”,然后在 Bitvise SSH 服务器控制面板中点击“启动服务器”。
在客户端计算机上下载并安装 PuTTY 和 PuTTYgen
如果您之前没有这样做,请从这里下载并安装 PuTTY 客户端。这是将之前下载的 PEM 文件转换为 PuTTY(用于远程终端访问)和 WinSCP(用于文件传输)所需的文件的必要步骤(PPK 文件)。
确保您同时下载了 PuTTY 和 PuTTYgen。
从 PEM 文件创建 PPK 文件
下载后,使用 PuTTYgen 将您的 PEM 文件转换为 PPK 文件。
启动 PuTTYgen。当对话框打开时,选择“加载”。
在文件对话框中,选择“所有文件”,然后选择您之前从 Amazon 下载的 PEM 文件。
点击“保存私钥”将 PEM 文件转换为 PPK 文件。
点击“是”保存,不设置密码(或者如果您愿意,可以设置密码)。
保存文件。您现在可以安装 WinSCP 并使用 WinSCP 连接到您的实例了。
打开端口 22...
要 SSH 进入您的服务器,您需要在 EC2 实例和 Windows 防火墙上都打开端口 22。
...在 EC2 实例上
在选定的实例上(确保实例在实例列表中被选中——蓝色复选框),点击“安全组”旁边的 launch-wizard-x 链接(我的显示为 launch-wizard-6,您的很可能不同)。
安全组页面加载后,点击“入站”选项卡,然后点击“编辑”。
当“编辑入站规则”对话框出现时,点击“添加规则”。
添加 SSH 规则
并将源指定为“ Anywhere”或为了增加安全性,指定为您的特定 IP。
点击“保存”按钮。
...在 Windows 防火墙上
接下来,Windows 防火墙也需要打开此端口。虽然 Bitvise 为 Bitvise SSH 服务器程序创建了入站规则,但经验表明这还不够——必须为端口而不是程序创建规则——我无法解释为什么会这样。
启动 Windows 防火墙,然后点击“入站规则”
接下来,点击“新建规则”并选择“端口”
点击“下一步”,然后输入 TCP 端口 22
点击“下一步”,然后接受默认的“允许连接”。
点击“下一步”,接受应用规则的默认设置。
点击“下一步”,然后为规则输入一个描述性名称,例如
点击“完成”并关闭 Windows 防火墙应用程序。您现在应该能够通过 SSH 连接到您的服务器了!
使用 WinSCP 客户端连接
如果您之前没有这样做,请从这里下载并安装 WinSCP 客户端。
安装完成后,启动 WinSCP 应用程序,输入弹性(静态)IP、您的用户名、密码,并选择私钥文件(使用 PuTTYGen 创建的 ppk 文件)。
保存配置,然后点击“登录”。您将看到一条警告消息。
点击“是”。
如果您仍然通过远程桌面连接查看服务器桌面,您应该会看到几个弹出消息,类似于此
在您的电脑上,WinSCP 应该会显示您的电脑和远程电脑的文件系统,类似于此。
您现在可以轻松地在您的计算机和服务器之间传输文件。
您还可以从其他资源管理器窗口拖放文件到 WinSCP 中的服务器资源管理器列表,这很方便。
WinSCP 会缓存远程服务器上的文件夹和文件名,因此一旦您浏览到某个文件夹(针对当前会话),服务器上发生的更改将不会显示,直到您使用刷新图标
刷新服务器的文件夹/文件列表。
PuTTY 集成
在“选项”->“首选项”选项卡下,选择“集成”->“应用程序”项。注意 PuTTY 路径。
如果您将 PuTTY 安装在其他位置,则需要更改此路径。
从“命令”菜单中,选择“在 PuTTY 中打开”
点击 PuTTY 安全警报问题的“是”。应该会打开一个终端窗口。
现在有一个诀窍。
- 在密码提示符下,将_您电脑上的_密码复制到剪贴板。
- 在 PuTTY 终端窗口中,用鼠标_单击一次_右键,然后按回车键。
PuTTY 终端将通过鼠标右键单击将您计算机的剪贴板内容复制到终端窗口。反之,如果您希望将信息从 PuTTY 终端复制到您的 PC,请用鼠标突出显示所需文本,然后_左键单击_。这将突出显示的内容复制到_您的_PC 的剪贴板。
登录后,您可以通过命令行访问您的服务器,例如
请注意,您将无法启动 UI 应用程序(它们不会出现在您的远程桌面会话中),但通过 PuTTY 的控制台会话仍然有用,尽管如此,这通常在连接到 Linux 实例时更有用!
通过在命令提示符下输入“exit”(优雅的方式)或直接关闭 PuTTY 终端窗口(不太优雅的方式)来退出终端会话。
您也可以直接启动 PuTTY 打开终端窗口,但仍需指定私钥文件,这在“连接”->“SSH”->“身份验证”配置页面中完成。
一些安全措施
一些值得思考的问题。
将 SSH 端口从 22 更改为其他端口
SSH 端口 22 是标准 SSH 端口。如果您想增加一点安全性,请配置 Bitvise SSH 服务器监听不同的端口。您还需要将 WinSCP 连接信息更改为新端口。
不使用时关闭 SSH 服务器
除非您需要 SSH 始终开启,否则我更喜欢点击 Bitvise SSH 服务器控制面板上的“停止服务器”链接。这意味着我必须通过远程桌面连接到服务器才能重新启用它,但这是一种额外的安全措施,可以避免 SSH 端口始终打开并监听连接。如果一直开着,我经常会看到不法分子试图入侵服务器!
为您的服务器注册域
使用您喜欢的域名注册商为您的服务器创建 A 记录。我喜欢 namecheap.com,所以截图将来自他们的网站。您需要进入“管理您的域名”,通常是“高级 DNS”页面,或类似页面。
创建或编辑 CNAME 记录,指向您可以在亚马逊实例页面上找到的公共 DNS。
创建一个只是您的服务器弹性 IP 的“A 记录”。
既然我们在这里,我们也来创建 MX 记录。Namecheap 有一个 MXE 记录选项(MX Easy),它只需要您服务器的弹性 IP。完成后,您将设置以下记录:
别忘了保存您的更改——检查您是否同时保存了主机记录和邮件设置记录。
测试您的服务器
一旦您注册了域名,创建了相应的记录,并等待了强制性的 48-72 小时让您的域名注册信息传播到域名服务器,您就可以测试您的一些记录设置了。
打开端口 80
这涉及到目前打开端口 80。按照我们打开端口 22 的说明,也打开端口 80。请注意,对于 EC2 实例,您可以从预定义的“HTTP”类型中选择。
别忘了在 Windows 防火墙上也要打开此端口。
简单的 C# 服务器
这是一个简单的服务器,您可以用它来测试您的域名。无论您浏览到哪个页面,它都只会发出“Hello World!”
using System; using System.IO; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; namespace TheUtmostBasicWebServer { class Program { static Semaphore sem; static void Main(string[] args) { // Supports 20 simultaneous connections. sem = new Semaphore(20, 20); HttpListener listener = new HttpListener(); listener.Prefixes.Add([YOUR PRIVATE IP HERE]); listener.Start(); Task.Run(() => { while (true) { sem.WaitOne(); StartConnectionListener(listener); } }); Console.WriteLine("Press a key to exit the server."); Console.ReadLine(); } static async void StartConnectionListener(HttpListener listener) { HttpListenerContext context = await listener.GetContextAsync(); sem.Release(); HttpListenerResponse response = context.Response; Console.WriteLine("URL: " + context.Request.Url); string text = "Hello World!"; byte[] data = Encoding.UTF8.GetBytes(text); response.ContentType = "text/html"; response.ContentLength64 = data.Length; response.OutputStream.Write(data, 0, data.Length); response.ContentEncoding = Encoding.UTF8; response.StatusCode = 200; response.OutputStream.Close(); } } }
在上面的代码中,将 [YOUR PRIVATE IP HERE] 替换为您的私有 IP,格式为“http://x.x.x.x/”(尾随的斜杠至关重要)。您的私有 IP 在您选择实例后显示在 EC2 实例页面上,例如:
您可以使用 WinSCP 传输 exe,然后在 PuTTY 会话中启动服务器。启动后,您应该会看到类似以下内容(当然,您的域名会不同)
(Poloron 是什么?好吧,您得等到我写那篇文章。)
请注意,浏览器总是请求“favicon.ico”——上面的服务器不会返回有效的图标,所以您总是会看到这个请求。
还要记住,一旦您终止 PuTTY 会话,服务器也将终止。
运行邮件服务器
虽然下面的说明很简单,但为了设置邮件服务器,我费了很大的力气才将所有部分都准备就绪,所以希望这能为您省去很多麻烦。邮件服务器对于本文的最后一步至关重要,即设置有效的 SSL 证书。邮件服务器是必需的,因为设置 SSL 证书的身份验证/验证过程的一部分需要将证书通过电子邮件发送到指向您服务器的域上的账户。
本文将配置的邮件服务器是 Mail Enable。您也可以考虑使用 hMailServer 作为替代方案。从 MailEnable 官方网站下载免费版。我更喜欢从我的电脑下载,然后通过 SCP 传输到服务器。文件名是“Standard901.exe”——相当有描述性,不是吗?
将文件移动到服务器后,使用远程桌面连接安装 MailEnable。点击“确定”以确认提示和警告。
提供一些注册信息后,仅选择邮件服务器组件。
选择您的邮局名称和密码。这里我使用域名,因为这是我将在该服务器上运行的唯一邮局。
输入您的服务器域名,其他字段保持不变。
Mail Enable 安装完成后,点击“开始”图标并输入“mail”。我通常会将图标固定到任务栏(右键单击 MailEnable 条目)以便于访问。
左键单击打开管理窗口。
请注意,在“邮局”下,对于邮局名称,已经有一个“Postmaster”邮箱。
打开 POP3 和 SMTP 端口
在 Amazon 实例安全组设置和 Windows 防火墙上,如前所述,打开以下入站端口:
- 25 - SMTP
- 110 - POP3
- 587 - 用于邮件提交(在此处阅读更多)
启用邮件提交
通过以下方式在 Mail Enable 上启用邮件提交:
- 右键单击树状视图中的 SMTP 服务器条目
- 选择“入站”选项卡
- 勾选“监听备用端口”
- 输入 587 作为端口号
为 Postmaster 邮箱设置密码
双击 Postmaster 邮箱。在“常规”选项卡中,为此邮箱创建密码。
您稍后将使用此密码进行服务器身份验证以发送/接收电子邮件。
尝试向 Postmaster 发送电子邮件
使用您喜欢的电子邮件应用程序,向 postmaster 邮箱发送一封测试邮件,例如:
稍等几秒钟,然后点击 Mail Enable 管理界面中的刷新按钮。您应该会看到邮件已收到。
双击 Postmaster 邮箱,然后点击“消息”选项卡。双击消息文件名,您将能够看到内容。
设置 Outlook 发送/接收电子邮件
我们现在将设置 Outlook,以便您可以通过 postmaster 帐户发送和接收电子邮件。我使用的是 Outlook 2010,其他版本在 UI 呈现上可能会略有不同(但对我来说,它们看起来和 10 年前一样!)。
首先,点击“文件”选项卡,然后点击“添加账户”。
选择“手动配置...”
选择“Internet 电子邮件”
输入您的域名(不是我的)以及您之前为 postmaster 账户创建的密码。
在点击“下一步”之前,点击“更多设置”。在“发件服务器”选项卡上,选择“我的发件服务器 (SMTP) 需要身份验证”。
在“高级”选项卡上,选择端口 587 作为发件 SMTP 服务器端口。
现在点击“下一步”。Outlook 将测试您的设置,大约一分钟后,应该会显示。
检索电子邮件
通过点击“发送/接收”选项卡,然后点击“发送/接收所有文件夹”,从服务器上获取所有电子邮件。
同步完成后,检查您的垃圾邮件文件夹,查找您之前发送的测试邮件。您的收件箱中也应该有一封 Outlook 发送的测试邮件。
发送电子邮件
向另一个帐户发送一封测试电子邮件(例如,您用于向服务器发送测试电子邮件的帐户)
我使用 Gmail,几秒钟内我的测试电子邮件就收到了。
如果您在常用收件箱中没有收到电子邮件,请检查您的垃圾邮件/垃圾箱文件夹。邮箱名称“postmaster”通常用作垃圾邮件过滤器!
恭喜——您现在已经将 Mail Enable 设置为邮件服务器,并将 Outlook 设置为使用您的邮件服务器发送/接收电子邮件。您现在可以设置其他帐户等。
通过您的服务器以编程方式发送电子邮件
我们现在可以通过服务器以编程方式发送电子邮件。例如:
using System; using System.Net; using System.Net.Mail; namespace SendMailExample { public class Program { public static void Main(string[] args) { string username = [username of the mailbox on your server] string password = [password of the mailbox on your server] string toEmail = [email address of recipient] string fromEmail = [email address of sender -- a mailbox on your server] string host = [mail.<yourserver>, for example, mail.foo.com] SmtpClient smtpClient = new SmtpClient(); NetworkCredential basicCredential = new NetworkCredential(username, password); MailMessage message = new MailMessage(); MailAddress fromAddress = new MailAddress(fromEmail); smtpClient.Host = host; smtpClient.Port = 587; // Note the port setting! smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = basicCredential; message.From = fromAddress; message.Subject = "Test Mail"; message.IsBodyHtml = true; message.Body = "<h1>your message body</h1>"; message.To.Add(toEmail); smtpClient.Send(message); } } }
设置 SSL 证书
以下描述了如何在不使用 IIS 的情况下创建 CSR 并获取 SSL 证书。我们将使用 RapidSSL 生成 SSL 证书,如果您正在使用 IIS,您可以使用 Symantec SSL Assistant for Windows Servers 来简化整个过程。无论如何,在我看来,了解如何在不依赖 IIS 的情况下完成此操作是件好事。
这里介绍的步骤必须完全按照我描述的顺序执行。我花了不少时间才弄清楚这个过程,特别是需要为证书创建私钥才能将其绑定到端口 443。
生成 CSR
首先,必须生成证书签名请求 (CSR)。左键单击 Windows 图标并键入“mmc”以打开 Microsoft 管理控制台。
右键单击应用程序并选择“以管理员身份运行”。应用程序启动后,点击“文件”菜单并选择“添加/删除管理单元”。
点击“证书”,然后点击“添加”。选择“计算机账户”。
点击“下一步”,然后选择“本地计算机”。
然后点击“完成”和“确定”。
1. 展开“证书”
2. 点击“个人”
3. 从右侧菜单中,点击“更多操作”
4. 所有任务
5. 高级操作
6. 创建自定义请求
点击“下一步”,然后点击“不带注册策略继续”。
点击“下一步”,然后选择“(无模板) CNG 密钥”,并验证“禁止默认扩展”未被选中。确保选择了 PKCS #10。
点击“下一步”。点击“详细信息”箭头,然后点击“属性”。
输入一个易记名称和描述,可以是任何内容,例如
点击“主题”选项卡并添加以下类型
- 通用名称:这必须是服务器的完全限定域名,在本例中为“www.poloron.net”
- Organization
- 状态
- 国家
- 电子邮件
您应该会看到类似这样的内容
在“私钥”选项卡中,确保加密服务提供商为 RSA, Microsoft Software Key Storage Provider,并且没有选择其他提供商。
在同一选项卡中,展开“选项”并确保密钥大小至少为 2048。还要选中“使私钥可导出”复选框。
点击“确定”,然后点击“下一步”。
将 CSR 保存为 Base 64 格式。
用记事本打开文件并复制到剪贴板。
向 RapidSSL 注册 CSR
前往 www.rapidssl.com 并按照说明生成 SSL 证书。当提示您输入 CSR 时,粘贴您刚刚创建的文件内容。
当您进入 RapidSSL 注册页面时,选择您的 postmaster 电子邮件地址作为二级域名地址,例如:
下订单后,检查您的 postmaster 电子邮件。
批准证书请求
您收到的电子邮件将包含一个批准证书请求的链接。点击该链接,然后点击“我批准”。奇怪的是,证书是发送到我的 Gmail 账户(我注册 RapidSSL 时使用的),而不是 postmaster 账户。去弄清楚吧。
在服务器上导入证书
您收到的电子邮件底部将有一个 Web 服务器证书。将其(包括“---BEGIN CERTIFICATE---”和“---END CERTIFICATE---”)复制并粘贴到您的服务器上的文本文件中。
返回 mmc 控制台并展开“证书”->“个人”->“证书”树。是的,是“个人”证书文件夹,而不是“受信任的根证书颁发机构”文件夹。右键单击证书并选择“所有任务”->“导入”。
将证书放入个人存储中
点击“下一步”->“完成”->“确定”。您的证书现在已存储,类似于此。
为证书创建私钥
为这个证书创建一个私钥是一个至关重要的步骤,我发现这是我在网上找到的大部分文档中缺失的环节。
首先,双击证书,点击“详细信息”选项卡,并记下序列号。
其次,在“以管理员身份启动”的控制台窗口中,输入
certutil -repairstore my "093406"
将我上面命令中的密钥序列号替换为您的证书的序列号(删除空格)。
返回 mmc 并按 F5。注意证书图标的变化。
它现在上面有一个“钥匙”!
导出带有私钥的证书
右键单击证书并导出它
点击“下一步”,在下一个对话框中,选择“是,导出私钥”。
点击“下一步”,再点击“下一步”,然后为您的密钥证书输入密码。
点击“下一步”,输入文件名(不带扩展名),点击“下一步”,然后点击“完成”。
将带有密钥的证书导入“受信任的根证书颁发机构”
右键单击“受信任的根证书颁发机构”中的“证书”文件夹,然后选择“所有任务”->“导入”。
选择上一节中保存的“.pfx”文件。系统将提示您输入密码。
点击“下一步”,“下一步”,然后“完成”。完成后,“带密钥的”证书将出现在您的“受信任的根证书颁发机构”列表中。
将证书绑定到端口 443
双击证书,在“详细信息”选项卡中,滚动到显示“缩略图”的位置。
在命令提示符下,输入
netsh http add sslcert ipport=0.0.0.0:443 certhash=[thumbnail] appid={[some GUID]}
其中 [thumbnail] 是您的证书的数字缩略图,_不带空格_,[some GUID] 是您选择的 GUID。
重要! - GUID 必须“加括号”,例如
appid={069dd08f-de72-4fee-99bb-40c4022f5719}
将端口 443 添加到 EC2 和 Windows 防火墙入站规则
将 HTTPS 端口 443 添加到您的 EC2 入站规则
并添加到 Windows 防火墙。
验证 HTTPS 连接
修改上面的测试服务器,添加一个 https 监听器
listener.Prefixes.Add("https://x.x.x.x:443/"); // PRIVATE IP!!!
将“x.x.x.x”替换为您的服务器的私有 IP。
启动服务器(如果其他服务器仍在运行,请记住关闭它),然后在您的浏览器中导航到 https://[yourdomain]。例如:
结论
126 张截图之后,我终于完成了一篇我两年来一直想写的文章:在一个地方,完整地描述了如何设置一个 EC2 实例,配置一个 SSH 服务器,添加一个邮件服务器,并获取一个 SSL 证书。我希望您在自己经历这个过程时能发现它有用!
修订
2016 年 5 月 15 日:添加了一个重要说明,即 GUID 必须加括号。几个月后我再次按照自己的步骤操作,花了我半小时才发现这个重要的遗漏!
参考文献
在使用“证书”管理单元删除 Internet Information Services 中的原始证书后,如何将私钥分配给新证书
在 Windows Server 2008 R2 和 2012 上获取证书(不使用 IIS)
OpenSSL - 您可以使用 OpenSSL 从命令行生成 CSR,如果您要生成大量 CSR 或想稍微自动化这个过程,这可能会更容易。