GioGio 的 Blog

网站如何加入SSL

2026-10-13apache,ssl,教程
# 网站如何加入SSL

前言:网站未安装SSL证书会对安全性、用户信任度和搜索引擎排名等方面产生显著负面影响。网站与用户之间的数据传输未加密,容易被黑客拦截和窃取。例如,用户的登录凭证、支付信息等敏感数据可能被泄露,增加数据劫持和隐私泄露的风险。未安装SSL证书可能违反相关规定,导致罚款或法律责任。部分API无法使用,比如server worker,地理位置API,web push等,无法利用现代Web技术优化用户体验。

虽然我的网站并不面向全互联网。但私下里访问还是经常会被浏览器安全拦截的,这是最主要的。

这篇教程介绍如何从 **阿里云**申请免费的**个人测试证书**

> 个人测试证书适合测试环境、个人开发者使用,价格实惠,仅支持单域名,无稳定性保障,每人每年20个免费证书额度。

## 一、阿里云购买证书和下载证书

首先,进入阿里云**数字证书管理服务**购买证书,点击个人测试证书:

![数字证书管理服务](https://giogio.top/api/articles/image/7/?name=1.png)

![价格](https://giogio.top/api/articles/image/7/?name=2.png)

免费证书最长只有3个月,我们选3个月即可,如果过期了重新申请就行。填写完整个人信息,点击立即购买,完成之后进入

**数字证书管理服务/SSL证书管理**>个人测试证书(原免费证书),查看当前证书状态,如果显示代申请,点击去申请,填写网站信息,一般10分钟就可以下发

![](https://giogio.top/api/articles/image/7/?name=3.png)

完成后点击右侧下载,并选择你的服务器类型,我是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>

*仅供非标准端口参考

相关文章