本文介绍了如何在Ubuntu系统以及Apache 2中安装阿里云SSL证书。
环境准备
操作系统:Ubuntu
Web服务器:Apache 2
前提条件
已从SSL证书控制台下载Apache服务器证书。
已安装Open SSL。
操作步骤
1:运行以下命令,在apache2目录下创建ssl目录。
mkdir /etc/apache2/ssl
2:运行以下命令,将下载的阿里云证书文件复制到ssl目录中。(YourDomainName为你下载的证书文件名)
cp -r YourDomainName_public.crt /etc/apache2/ssl
cp -r YourDomainName_chain.crt /etc/apache2/ssl
cp -r YourDomainName.key /etc/apache2/ssl
3:运行以下命令,启用SSL模块。
sudo a2enmod ssl
SSL模块启用后,可执行ls /etc/apache2/sites-available,查看目录下生成的default-ssl.conf文件。
说明 443端口是网络浏览端口,主要用于HTTPS服务。SSL模块启用后会自动放行443端口。若443端口未自动放行,可执行vi /etc/apache2/ports.conf并添加Listen 443手动放行。
4:运行以下命令,修改SSL配置文件 default-ssl.conf。
vi /etc/apache2/sites-available/default-ssl.conf
在default-ssl.conf文件中找到以下参数,进行修改后保存并退出。
<IfModules mod_ssl.c> <VirtualHost *:443> ServerName #修改为证书绑定的域名www.YourDomainName.com。 SSLCertificateFile /etc/apache2/ssl/www.YourDomainName_public.crt #将/etc/apache2/ssl/www.YourDomainName.com_public.crt替换为证书文件路径+证书文件名。 SSLCertificateKeyFile /etc/ssl/apache2/www.YourDomainName.com.key #将/etc/apache2/ssl/www.YourDomainName.com.key替换为证书密钥文件路径+证书密钥文件名。 SSLCertificateChainFile /etc/apache2/ssl/www.YourDomainName.com_chain.crt #将/etc/apache2/ssl/www.YourDomainName.com_chain.crt替换为证书链文件路径+证书链文件名。
如配置多个站点,则参考以下配置:
<VirtualHost *:443> ServerName #修改为申请证书时绑定的域名www.YourDomainName1.com。 DocumentRoot /data/www/hbappserver/public1 #自行修改网站所处目录地址 SSLEngine on SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。 SSLHonorCipherOrder on SSLCertificateFile cert/domain name1_public.crt # 将cert/domain name1_public.crt替换成您证书文件名。 SSLCertificateKeyFile cert/domain name1.key # 将cert/domain name1.key替换成您证书的密钥文件名。 SSLCertificateChainFile cert/domain name1_chain.crt # 将cert/domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。 </VirtualHost> #如果证书包含多个域名,复制以上参数,并将ServerName替换成第二个域名。以及修改证书文件路径: <VirtualHost *:443> ServerName #修改为申请证书时绑定的第二个域名www.YourDomainName2.com。 DocumentRoot /data/www/hbappserver/public2 #自行修改网站所处目录地址 SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on SSLCertificateFile cert/domain name2_public.crt # cert/将domain name2替换成您申请证书时的第二个域名。 SSLCertificateKeyFile cert/domain name2.key # 将cert/domain name2替换成您申请证书时的第二个域名。 SSLCertificateChainFile cert/domain name2_chain.crt # 将cert/domain name2替换成您申请证书时的第二个域名;证书链开头如果有#字符,请删除。 </VirtualHost>
/sites-available:该目录存放的是可用的虚拟主机;/sites-enabled:该目录存放的是已经启用的虚拟主机。
说明 default-ssl.conf文件可能存放在/etc/apache2/sites-available或/etc/apache2/sites-enabled目录中。
5:运行以下命令,把default-ssl.conf映射至/etc/apache2/sites-enabled文件夹中建立软链接,实现二者之间的自动关联。
sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
6:运行以下命令,重新加载Apache 2配置文件。
sudo /etc/init.d/apache2 force-reload
7:运行以下命令,重启Apache 2服务
sudo /etc/init.d/apache2 restart
8:可在浏览器中输入https://你的网站地址.com,验证证书安装结果。浏览器地址栏显示绿色的小锁标识说明证书安装成功。