网站如何加入SSL
2026-10-13apache,ssl,教程
# 网站如何加入SSL
前言:网站未安装SSL证书会对安全性、用户信任度和搜索引擎排名等方面产生显著负面影响。网站与用户之间的数据传输未加密,容易被黑客拦截和窃取。例如,用户的登录凭证、支付信息等敏感数据可能被泄露,增加数据劫持和隐私泄露的风险。未安装SSL证书可能违反相关规定,导致罚款或法律责任。部分API无法使用,比如server worker,地理位置API,web push等,无法利用现代Web技术优化用户体验。
虽然我的网站并不面向全互联网。但私下里访问还是经常会被浏览器安全拦截的,这是最主要的。
这篇教程介绍如何从 **阿里云**申请免费的**个人测试证书**
> 个人测试证书适合测试环境、个人开发者使用,价格实惠,仅支持单域名,无稳定性保障,每人每年20个免费证书额度。
## 一、阿里云购买证书和下载证书
首先,进入阿里云**数字证书管理服务**购买证书,点击个人测试证书:


免费证书最长只有3个月,我们选3个月即可,如果过期了重新申请就行。填写完整个人信息,点击立即购买,完成之后进入
**数字证书管理服务/SSL证书管理**>个人测试证书(原免费证书),查看当前证书状态,如果显示代申请,点击去申请,填写网站信息,一般10分钟就可以下发

完成后点击右侧下载,并选择你的服务器类型,我是apache,下载apache就可以。会给你一个安装包`xxxx_giogio.top_apache.zip`解压后获得三个文件:
`giogio.top.key`私钥、`giogio.top_chain.crt`中间证书、`giogio.top_public.crt`公钥
## 二、使用证书
获取到了证书,且证书绑定好域名后。创建文件夹存放证书`sudo mkdir /etc/apache2/ssl`,将三个证书文件放入文件夹内。
启用SSL模块:`sudo a2enmod ssl`
此时会生成默认的SSL配置文件`ls /etc/apache2/sites-available/default-ssl.conf`
编辑`default-ssl.conf`文件,我自己用的不是常规默认端口443,80,是8080端口。所以:
```apacheconf
<VirtualHost *:8080> # 这里改成自己的端口
ServerName giogio.top# 这里填写域名
SSLEngine on #开启sll
# 将三个证书文件路径添加进去。
SSLCertificateFile /etc/apache2/ssl/giogio.top_public.crt
SSLCertificateKeyFile /etc/apache2/ssl/giogio.top.key
# 注意!SSLCertificateChainFile在 Apache 2.4.8 版本后已被弃用,
SSLCertificateChainFile /etc/apache2/ssl/giogio.top_chain.crt
# 添加 TLS 协议支持
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>
```
> 注意:SSLCertificateChainFile在 Apache 2.4.8 版本后已被弃用,新版 Apache 建议将中间证书(`_chain.crt`)的内容**追加**到服务器证书(`_public.crt`)末尾,然后只通过 `SSLCertificateFile` 加载这一个文件。
>
> cat giogio.top_chain.crt >> giogio.top_public.crt # 合并证书链
>
> 改为:
>
> SSLCertificateFile /etc/apache2/ssl/giogio.top_public.crt
在此之前如果没有配置过端口,那么需要配置一下`/etc/apache2/ports.conf`
```apacheconf
# If you just chage the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
#Listen 8080 # 全局监听8080
<IfModule ssl_module>
Listen 443
Listen 8080 # ssl监听8080
</IfModule>
```
如果之前用http默认,就把普通的 `000-default.conf` 从 8080` 端口上移除,只保留 SSL 站点。
```bash
# 停用默认站点
sudo a2dissite 000-default.conf
# 重启 Apache
sudo systemctl restart apache2
```
重启后可以测试是否开启SSL:
```bash
curl -k https://giogio.top:8080
```
可以看到TLS 握手成功并返回网页内容。即可访问https网站。
#### <mark>建议80天提醒重新申请证书,或者使用Certbot自动申请部署SSL</mark>
*仅供非标准端口参考