Ubuntu LTS Apache2部署全站SSL

发表于 2019-12-11  23 次阅读


本篇文章主要以腾讯云赠送的一年AsiaTrust SSL证书为例介绍Apache2的部署

首先我们需要在服务器上上传我们的证书,针对Apache的证书分为三个文件

1_root_bundle.crt
2_xxx.xxx.xxx.crt
3_xxx.xxx.xxx.key

然后我们在/etc/apache2/下建立/ssl

mkdir /etc/apache2/ssl

将证书移动到文件夹中

mv

接下来我们要建立软链接

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

用vim修改/etc/apache2/sites-avaliable/default-ssl.cnf,将代码修改为如下

<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
		ServerAdmin 你的邮箱
        
		DocumentRoot /var/www/你的目录
	    ServerName 你的域名

		ErrorLog ${APACHE_LOG_DIR}/error.log
		CustomLog ${APACHE_LOG_DIR}/access.log combined

		SSLEngine on
		# 注意,需要添加这三行
		SSLCertificateFile 你自定义的路径/2_xxx.xxx.xxx.crt
    	SSLCertificateKeyFile 你自定义的路径/3_xxx.xxx.xxx.key
    	SSLCertificateChainFile 你自定义的路径/1_root_bundle.crt
	
		<FilesMatch "\.(cgi|shtml|phtml|php)$">
				SSLOptions +StdEnvVars
		</FilesMatch>
		<Directory /usr/lib/cgi-bin>
				SSLOptions +StdEnvVars
		</Directory>
	</VirtualHost>
</IfModule>

修改后保存

接下来执行命令

sudo a2enmod ssl
sudo service apache2 restart

测试一下,在浏览器中输入https://你的域名/

如果有一个小锁头证明你成功了

接下来我们来强制使用HTTPS

输入指令

vim /etc/apache2/sites-available/000-default.conf

在 <VirtualHost*:80></VirtualHost> 标签之间加入

RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]

然后输入指令

sudo a2enmod rewrite

最后在重启,完成部署

sudo service apache2 restart

或者也可修改.haccess文件来实现HTTP重定向到HTTPS

在.haccess中加入如下代码

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
本站文章基于国际协议BY-NA-SA 4.0协议共享;
如未特殊说明,本站文章皆为原创文章,请规范转载。

0

这里千秋Sakina,感谢使用本主题哦~