在EC2上的apache实例上启用SSL

Mat*_*son 28 apache ssl amazon-ec2

我有一个EC2实例,它使用内置apache的亚马逊定制linux安装.此安装也安装了openssl.话虽这么说,似乎没有一个mod_ssl.so在httpd.conf中加载.

所以,我想知道让apache成为ssl的最佳方法,这样我就可以设置我的SSL虚拟主机了(注意我已经设置了证书/签名).理想情况下,我不想重建/重新安装apache.

Jos*_*ega 33

试试这个命令:

 yum install mod_ssl 
Run Code Online (Sandbox Code Playgroud)

  • 干杯.对于Apache 2.4用户:我不得不使用`yum install mod24_ssl`. (12认同)
  • 是的,`yum install mod24_ssl`在我的amazon ec2服务器上工作正常. (4认同)
  • 有人可以解释为什么每个人总是在没有 sudo 的情况下发布 yum 吗?没有 sudo 它永远不会工作,那你为什么不写呢? (2认同)

Cod*_*rew 27

在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>
Run Code Online (Sandbox Code Playgroud)

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

  • 我浪费了几个小时试图找出为什么我无法使用SSL访问我的网站,只是注意到我忘记在我的安全组中打开端口443!如果不是因为你的提醒我可能花了几个小时试图调试这个. (3认同)

Iai*_*ain 12

我设法在我的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


Ale*_*huk 7

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

httpd -v
Run Code Online (Sandbox Code Playgroud)

对于Apache 2.2

yum install mod_ssl
Run Code Online (Sandbox Code Playgroud)

对于Apache 2.4

yum install mod24_ssl
Run Code Online (Sandbox Code Playgroud)