在EC2的Apache实例上启用SSL

我有一个使用亚马逊的定制Linux安装与内置的Apache的EC2实例。 这个安装也安装了openssl。 话虽如此,似乎没有一个mod_ssl.so加载在httpd.conf中。

所以,我想知道最好的方法来让Apache启用SSL,所以我可以设置我的SSL虚拟主机(注意,我已经设置了证书/签名)。 理想情况下,我想不必重build/重新安装Apache。

试试这个命令:

yum install mod_ssl 

在EC2上的apache服务器上启用SSL需要做些什么的总结:

  1. 获取SSL证书(您已经完成)
  2. 按照Jose Vega的说法安装mod_ssl
  3. 将以下行添加到您的httpd.conf 3。
 NameVirtualHost *:443 <VirtualHost *:443> serverName www.example.com # other configurations SSLEngine on SSLCertificateFile /etc/httpd/conf/ssl.crt/mydomain.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mydomain.key </VirtualHost> 

最后,不要忘记在EC2实例上打开端口443

我设法在我的ec2实例上启用SSL,并从startssl.com安装一个免费的ssl证书。 我犯了一些错误,这是基本的做法:

  1. 通过单击控制面板链接注册到startssl.com
    • 完成注册过程。 您将需要验证您的电子邮件地址。
  2. 验证向导 – >域名验证下验证您的域名
  3. 通过证书向导获取证书
    • 选择: Web server SSL/TLS Certificate
    • 输入将用于加密私钥的密码。 您将在稍后需要。
    • 我选择了4096的密码
    • 将加密的私钥保存为ssl.encrypted.key
    • ?? 我忘了接下来发生了什么
    • 将证书文件保存为ssl.crt。 对我来说,我不得不等待30分钟,然后出现在“ 工具箱” – >“回溯证书”下
  4. 使用openssl解密加密的ssl.encrypted.key文件
    • sudo openssl rsa -in ssl.encrypted.key -out ssl.unencrpted.key
    • startssl.com在他们的网站上也有一个解密选项,但是这对我没有任何作用
  5. putty / ssh到你的ec2机器上
  6. 安装mod_ssl
    • sudo yum install mod_ssl
  7. 替换默认证书和密钥
    • sudo vi /etc/pki/tls/certs/localhost.crt
    • 粘贴到ssl.crt的内容中
    • 确保它粘贴正确! 我总是输掉前6个字
    • 使用:%d根据需要删除现有的证书
    • [ESC] wq
    • sudo vi /etc/pki/tls/private/localhost.key
    • 粘贴到ssl.unencrypted.key的内容中
    • 再次确保它粘贴正确!
    • [ESC] wq
  8. 检查配置
    • apachectl configtest
  9. 重新开始
    • sudo service httpd restart
    • 我有问题重新启动,我认为是什么修复它是sudo kill -9 httpd

您应该安装SSL模块,因为默认情况下,mod SSL不提供大多数实例,但是取决于您在AWS实例中使用的Apache版本。 要检查您正在使用哪一个,您可以在命令行中运行此命令:

 httpd -v 

对于Apache 2.2

 yum install mod_ssl 

对于Apache 2.4

 yum install mod24_ssl 

如果您使用的是Amazon Lightsail,请确保从Lightsail仪表板进入联网,并在防火墙中添加HTTPS / 443:

在这里输入图像说明