在EC2上的apache实例上启用SSL

时间:2011-08-04 20:35:35

标签: apache ssl amazon-ec2

我有一个EC2实例正在使用内置apache的Amazon自定义linux安装。此安装也安装了openssl。话虽这么说,似乎没有一个mod_ssl.so在httpd.conf中加载。

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

6 个答案:

答案 0 :(得分:33)

尝试此命令:

 yum install mod_ssl 

答案 1 :(得分:27)

在EC2上的apache服务器上启用SSL需要执行的操作的摘要:

  1. 获取SSL证书(您已经做过)
  2. 按照Jose Vega的说法安装mod_ssl
  3. 将以下行添加到httpd.conf 3。
  4. 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

答案 2 :(得分:12)

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

  1. 单击“控制面板”链接注册到startssl.com
    • 完成注册过程。您需要验证您的电子邮件地址。
  2. 验证向导 - &gt;下验证您的域名域名验证
  3. 通过证书向导获取证书
    • 选择:Web Server SSL/TLS Certificate
    • 输入将用于加密私钥的密码。稍后你会需要这个。
    • 我选择了4096的密钥
    • 将加密的私钥保存为ssl.encrypted.key某个地方
    • ?我忘记了接下来发生的事情
    • 将证书文件保存为ssl.crt。对我来说,我必须等待30分钟然后它出现在工具箱 - &gt;回复证书
  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

答案 3 :(得分:7)

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

httpd -v

对于Apache 2.2

yum install mod_ssl

对于Apache 2.4

yum install mod24_ssl

答案 4 :(得分:0)

如果您使用的是亚马逊Lightsail,请务必从Lightsail仪表板进入网络并在防火墙中添加HTTPS / 443:

enter image description here

答案 5 :(得分:0)

这是通过外壳通过具有CA捆绑包(在Lightsail服务器上,启用HTTPS / 443的)的通配符证书对我有用的方法。里程可能会有所不同。安装后在https://www.digicert.com/help/上进行测试。为简便起见,我(显然)缩短了这里的证书/密钥。

值得注意的是,我不需要为域设置VirtualHost。

# Overwrite these files on Amazon Linux + mod_ssl (or mod24_ssl)
# /etc/pki/tls/certs/ca-bundle.crt
# /etc/pki/tls/certs/localhost.crt
# /etc/pki/tls/private/localhost.key

## BEGIN

# INSTALL AS ROOT
sudo -su root

sudo cat > /etc/pki/tls/certs/localhost.crt <<EOF
-----BEGIN CERTIFICATE-----
MIIF7DCCBNSgAwIBAgIMNY9yk7s651tb2YasMA0GCSqGSIb3DQEBCwUAMEwxCzAJ
KoZIhvcNAQELBQADggEBACu8MsClqLbO1NqjXw+igERhLRkISgnkIjB1p69zh3V0
/3b68mkC+8pL3HNLgL0qIM9sPKKOl/Iyky2EfwfQDoZEWNB0qWKIOovH5Oj9z5DE
-----END CERTIFICATE-----
EOF

sudo cat > /etc/pki/tls/private/localhost.key <<EOF
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCL6UsW9yC0Faev
1zeEJcF6E7P6XYqT25rWMj5xzUM8gi/4nLpGr+tOBlFJYSbLlEHJKG6QLO9Ku896
MwTtWyOrTlPtpJEi9LUrLmOUXtD1WN2Ekql/ZLaO7pxUtVTRF4MyYspGgU1ZjkxY
vQLnZs85bnG2dLz7Q4xxlj4=
-----END PRIVATE KEY-----
EOF

sudo cat > /etc/pki/tls/certs/ca-bundle.crt <<EOF
-----BEGIN CERTIFICATE-----
MIIESzCCAzOgAwIBAgIOSMqBefg+ikLz9c3isT8wDQYJKoZIhvcNAQELBQAwTDEg
bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTYxMDE0MDAwMDAwWhcNMjQw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
-----END CERTIFICATE-----
EOF

# RESTART
sudo service httpd restart

#DONE