如何在Ubuntu 14.0.4中安装Apache 2.4上的SSL
安全套接字层或者SSL是标准安全技术,用于在Web服务器和Web浏览器之间创建加密连接。
这可确保Web服务器和Web浏览器之间传递的所有数据保持私密和安全。
它由数百万个用于保护他们与客户的在线通信。
为了能够生成SSL链接,Web服务器需要SSL证书。
我们可以创建自己的SSL证书,但默认情况下,在Web浏览器中不可信,要修复我们将不得不从值得信赖的证书颁发机构(CA)购买数字证书,我们将向我们展示如何获得证书并在Apache中安装它。
生成证书签名请求
证书颁发机构(CA)将询问我们在Web服务器上生成的证书签名请求(CSR)。
这是一个简单的步骤,只需要一分钟,你必须运行以下命令并输入所请求的信息:
# openssl req -new -newkey rsa:2048 -nodes -keyout yourdomainname.key -out yourdomainname.csr
输出应该看起来像这样:
这开始生成两个文件的过程:用于解密SSL证书的私钥文件,以及使用Apache openssl的证书签名请求(CSR)文件(用于应用SSL证书)。
根据我们所申请的权限,我们将或者必须将其CSR文件上传或者粘贴其内容以Web表单。
在Apache中安装实际证书
完成生成过程后,我们将收到新的数字证书,对于本文,我们使用了Comodo SSL并在ZIP文件中收到了证书。
要在Apache中使用它,我们将首先使用以下命令创建一个在zip文件中收到的证书捆绑包:
# cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > bundle.crt
现在通过运行以下命令确保在Apache中加载了SSL模块:
# a2enmod ssl
如果我们收到消息"已启用的模块SSL",则可以确定,如果我们收到消息"启用模块SSL"。
我们还必须运行以下命令重新启动Apache:
# service apache2 restart
最后修改虚拟主机文件(通常在/etc/apache2 /站点中找到启用),以查看这样的内容:
DocumentRoot /var/www/html/ ServerName theitroad.com SSLEngine on SSLCertificateFile /usr/local/ssl/crt/yourdomainname.crt SSLCertificateKeyFile /usr/local/ssl/yourdomainname.key SSLCACertificateFile /usr/local/ssl/bundle.crt
我们现在应该使用https://yorsdomain /(小心使用'https'而不是http)来访问,并查看正在进行的SSL(通常由Web浏览器中的锁定指示)。
注意:所有链接现在必须指向HTTPS,如果上的某些内容(如镜像或者CSS文件)仍然指向HTTP链接,我们将在浏览器中获取警告,修复此问题,我们必须确保每一个链接指向https。
将HTTP请求重定向到我们的HTTPS版本
如果要将普通的HTTP请求重定向到的HTTPS版本,请将以下文本添加到要将其应用于或者到Apache.conf的虚拟主机中,如果要将其应用于服务器上托管的所有,则将其应用于Apache.conf :
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}