如何在Ubuntu 14.04 上为Apache 2.4 安装SSL支持
今天我会讲述如何为你的个人网站或者博客安装SSL 证书，来保护你的访问者和网站之间通信的安全。 安全套接字层或称SSL，是一种加密网站和浏览器之间连接的标准安全技术。这确保服务器和浏览器之间传输的数据保持隐私和安全。它被成千上万的人使用来保护他们与客户的通信。要启用SSL链接，Web服务器需要安装SSL证书。 你可以创建你自己的SSL证书，但是这默认不会被浏览器所信任，要解决这个问题，你需要从受信任的证书机构（CA）处购买证书，我们会向你展示如何获取证书并在apache中安装。  生成一个证书签名请求 证书机构（CA）会要求你在
SSL Apache Ubuntu
218.30.103.250
mark
微博评论
2015-02-17T14:03:01.000
218.30.103.250
@我的印象笔记
微博评论
2015-02-17T14:03:01.000
111.16.195.85
@我的印象笔记
微博评论
2015-02-17T15:03:01.000
111.16.195.85
@mywiz
微博评论
2015-02-17T15:03:01.000
91.121.238.145
Repost
微博评论
2015-02-17T15:33:03.000
125.109.111.200
mark
微博评论
2015-02-17T17:33:01.000
59.44.226.33
Startssl 免费
微博评论
2015-02-17T21:03:02.000
171.223.126.67
凌乱了
mailbill
2015-02-19T20:54:23.000
14.154.133.98
沃通的SSL证书证书支持多个域名，免费，可以申请2年。
来自 - 广东深圳 的 Mozilla/Windows 用户
2015-03-11T15:30:06.000
今天我会讲述如何为你的个人网站或者博客安装SSL 证书，来保护你的访问者和网站之间通信的安全。 安全套接字层或称SSL，是一种加密网站和浏览器之间连接的标准安全技术。这确保服务器和浏览器之间传输的数据保持隐私和安全。它被成千上万的人使用来保护他们与客户的通信。要启用SSL链接，Web服务器需要安装SSL证书。 你可以创建你自己的SSL证书，但是这默认不会被浏览器所信任，要解决这个问题，你需要从受信任的证书机构（CA）处购买证书，我们会向你展示如何获取证书并在apache中安装。  生成一个证书签名请求 证书机构（CA）会要求你在
今天我会讲述如何为你的个人网站或者博客安装**SSL 证书**，来保护你的访问者和网站之间通信的安全。


安全套接字层或称SSL，是一种加密网站和浏览器之间连接的标准安全技术。这确保服务器和浏览器之间传输的数据保持隐私和安全。它被成千上万的人使用来保护他们与客户的通信。要启用SSL链接，Web服务器需要安装SSL证书。


你可以创建你自己的SSL证书，但是这默认不会被浏览器所信任，要解决这个问题，你需要从受信任的证书机构（CA）处购买证书，我们会向你展示如何获取证书并在apache中安装。


![](/data/attachment/album/201502/17/134227kxo7otq6d5725pvj.jpg)


### 生成一个证书签名请求


证书机构（CA）会要求你在你的服务器上生成一个证书签名请求（CSR）。这是一个很简单的过程，只需要一会儿就行，你需要在你的服务器上运行下面的命令并输入需要的信息：



```
# openssl req -new -newkey rsa:2048 -nodes -keyout yourdomainname.key -out yourdomainname.csr

```

输出看上去会像这样：


![generate csr](/data/attachment/album/201502/17/134231pjx767jc2pueiu5w.jpg)


这一步会生成两个文件：一个用于解密SSL证书的私钥文件，一个证书签名请求（CSR）文件（用于申请你的SSL证书）。


根据你申请的机构，你会需要上传csr文件或者在网站表格中粘帖该文件内容。


### 在Apache中安装实际的证书


生成步骤完成之后，你会收到新的数字证书。本篇教程中我们使用[Comodo SSL](https://ssl.comodo.com/)，并在一个它发给我们的zip文件中收到了证书。要在apache中使用它，你首先需要用下面的命令用收到的证书创建一个组合的证书：



```
# cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > bundle.crt

```

![bundle](/data/attachment/album/201502/17/134232uo3o3usb5ys36bb1.jpg)


用下面的命令确保ssl模块已经加载进apache了：



```
# a2enmod ssl

```

如果你看到了“Module ssl already enabled”这样的信息就说明你成功了，如果你看到了“Enabling module ssl”，那么你还需要用下面的命令重启apache：



```
# service apache2 restart

```

最后像下面这样修改你的虚拟主机文件（通常在/etc/apache2/sites-enabled 下）：



```
DocumentRoot /var/www/html/
ServerName linoxide.com
SSLEngine on
SSLCertificateFile /usr/local/ssl/crt/yourdomainname.crt
SSLCertificateKeyFile /usr/local/ssl/yourdomainname.key
SSLCACertificateFile /usr/local/ssl/bundle.crt

```

你现在应该可以用https://YOURDOMAIN/（注意使用‘https’而不是‘http’）来访问你的网站了，并可以看到SSL的进度条了（通常在你浏览器中用一把锁来表示）。


**注意：** 现在所有的内容链接都必须指向https，如果网站上的一些内容（像图片或者css文件等）仍旧指向http链接的话，你会在浏览器中得到一个警告，要修复这个问题，请确保每个链接都指向了https。


### 在你的网站上重定向HTTP请求到HTTPS中


如果你希望重定向常规的HTTP请求到HTTPS，添加下面的文本到你希望修改的虚拟主机，或者如果希望给服务器上所有网站都添加的话就加入到apache.conf中：



```
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

```



---


via: <http://linoxide.com/ubuntu-how-to/install-ssl-apache-2-4-in-ubuntu/>


作者：[Adrian Dinu](http://linoxide.com/author/adriand/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

