分类
技术

从零开始的SSL证书配置

为什么要配置SSL证书启用https协议,可以看这个视频

  • 申请免费证书

先在阿里云数字证书管理服务界面-免费证书下购买20个免费,或者花68买一年的免费证书,然后等待CA机构签发激活。

激活后会显示已签发,然后下载对应版本的证书到自己本地电脑,选择我Apache会下载三个证书文件。

  • 上传证书到服务器

在apache2目录下创建SSL目录

mkdir /etc/apache2/ssl

将下载的三个证书文件上传到服务器的 /etc/apache2/ssl 目录。

  • 安装SSL证书所需的模块

sudo apt update

sudo apt install apache2 ssl-cert

  • 启用SSL模块

sudo a2enmod ssl

/sites-available目录存放的是可用的虚拟主机。

/sites-enabled目录存放的是已经启用的虚拟主机。

SSL模块启用后,会在/etc/apache2/sites-available目录生成SSL证书配置文件default-ssl.conf

  • 打开default-ssl.conf配置文件中,定位到以下参数,按照中文注释修改 /etc/apache2/sites-available/default-ssl.conf
DocumentRoot /var/www/html #替换为网站的代码入口地址,比如我的是/var/www/html
ServerName www.coni.top  #将www.coni.top替换为您证书绑定的域名。部分服务器,没有该配置参数,需要手动添加。
SSLCertificateFile /etc/apache2/ssl/coni.top_public.crt  #证书文件路径。请替换为实际证书文件路径。
SSLCertificateKeyFile /etc/apache2/ssl/coni.top.key   #证书私钥文件路径。替换为实际证书私钥文件路径。
SSLCertificateChainFile /etc/apache2/ssl/coni.top_chain.crt  #证书链文件路径。请替换为实际证书链文件路径。

如果没有就在开头添加
<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
  • 将default-ssl.conf映射至/etc/apache2/sites-enabled目录,实现两者之间的自动关联

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

  • 重新加载Apache2配置文件

sudo /etc/init.d/apache2 force-reload

  • 重启Apache2服务

sudo /etc/init.d/apache2 restart

  • 访问自己的网站,查看证书是否成功配置

对了,阿里云官方文档给的教程是apache1的,还是进的etc/httpd的目录,不是现在主流apache2的教程,别搞错了

开启http强制跳转https

在项目根目录下/var/www,创建文件”.htaccess“,内容如下

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

或者

打开 /etc/apache2/sites-available/000-default.conf
<\VirtualHost :80><\VirtualHost> 标签内随便一个地方加入以下三行

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

然后修改apache统一配置文件里面的”/etc/apache2/apache2.conf

# 找到<Directory />那一段,修改一下AllowOverride从None到All
<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
</Directory>
 
# 找到<Directory /var/www/>那一段,修改一下AllowOverride从None到All
<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

重启apache服务:/etc/init.d/apache2 restartor

现在访问http的域名就会被强制跳转到https下

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

在此处输入验证码 : *

Reload Image