ssl新闻资讯

文档中心

Apache鏈嶅姟鍣ㄥ浣曡嚜宸辩鍙慡SL璇佷功锛熸墜鎶婃墜鏁欎綘鎼缓HTTPS鍔犲瘑閫氶亾

时间 : 2025-09-27 15:41:29浏览量 : 3

2Apache鏈嶅姟鍣ㄥ浣曡嚜宸辩鍙慡SL璇佷功锛熸墜鎶婃墜鏁欎綘鎼缓HTTPS鍔犲瘑閫氶亾

在当今互联网环境中,HTTPS早已成为网站安全的标配。对于使用Apache服务器的站长或运维人员来说,掌握自己签发SSL证书的技能不仅能节省成本,还能更灵活地管理测试环境。本文将用最通俗的语言,配合实际案例,带你一步步实现Apache自签名证书的配置。

一、为什么要自己签发SSL证书?

SSL证书的核心作用有两个:

1. 加密传输:防止数据在传输过程中被窃听(比如用户密码)

2. 身份验证:证明网站的真实性(防止钓鱼网站)

自签名证书虽然无法获得浏览器厂商的预置信任(会显示警告),但在以下场景非常实用:

- 内部系统:公司OA、测试环境等无需对外公开的服务

- 开发调试:程序员本地测试HTTPS功能

- 成本敏感项目:个人博客或非商业站点

> 真实案例:某电商公司在开发支付功能时,先用自签名证书在测试环境完成全流程验证,再申请商业证书上线生产环境。

二、自签名证书原理图解

```

[你的服务器] --生成--> [私钥.key] + [公钥.csr]

|

v

[用私钥签署.csr]

[最终证书.crt]

就像你自己写了一张身份证:

- `.key`是你的私人印章(绝对保密)

- `.crt`是制作好的身份证(可公开分发)

三、Apache配置七步实操

步骤1:生成私钥(RSA 2048位)

```bash

openssl genrsa -out myserver.key 2048

这相当于打造一把只有你能用的防盗门钥匙。

步骤2:创建证书签名请求(CSR)

openssl req -new -key myserver.key -out myserver.csr

需要填写的信息示例:

Country Name (2 letter code) []:CN

State or Province Name []:Shanghai

Locality Name []:Pudong

Organization Name []:MyTestCompany

Common Name (eg, server FQDN) []:test.example.com

特别注意:

- `Common Name`必须与你的域名完全一致

- 内部系统可以用IP如`192.168.1.100`

步骤3:自签署证书(有效期365天)

openssl x509 -req -days 365 -in myserver.csr -signkey myserver.key -out myserver.crt

步骤4:移动文件到安全目录

mkdir /etc/apache2/ssl/

mv myserver.* /etc/apache2/ssl/

chmod 600 /etc/apache2/ssl/myserver.key

关键!限制私钥权限

步骤5:修改Apache配置

```apacheconf

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/myserver.crt

SSLCertificateKeyFile /etc/apache2/ssl/myserver.key

强制HTTPS跳转(可选)

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

步骤6:检查配置语法

apachectl configtest

步骤7:重启服务生效

systemctl restart apache2

CentOS用httpd服务名

Windows Apache用户注意:

需要将.crt文件转换为.pem格式供Apache使用

四、浏览器告警处理方案

访问时会看到类似提示:

您的连接不是私密连接 | NET::ERR_CERT_AUTHORITY_INVALID"

解决方案(按风险从低到高):

1. 临时跳过:Chrome浏览器输入`thisisunsafe`(仅当前页面)

2. 导入信任(适合内网):

- Firefox:设置 > Privacy & Security > View Certificates > Authorities > Import...

3. 创建私有CA(企业推荐):

```bash

CA机构操作示例:

openssl genrsa -out myCA.key 2048

openssl req -x509 -new -key myCA.key -days 3650 -out myCA.crt

```

五、进阶安全加固建议

1. 密钥保护最佳实践

chattr +i /etc/apache2/ssl/myserver.key

Linux防删除保护

2. 禁用老旧协议

```apacheconf

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1

仅允许TLS1.2+

3. OCSP装订提升性能

SSLUseStapling On

SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

> IT运维血泪史:某公司因未更新SSL配置导致使用TLS1.0协议,被黑客利用BEAST攻击截获管理员cookie。

FAQ高频问题解答

Q:自签名和Let's Encrypt免费证书有什么区别?

A:Let's Encrypt会被浏览器自动信任,但需要每90天续期;自签名永久有效但需手动信任。

Q:多域名怎么处理?

A:生成CSR时添加`SubjectAltName`扩展:

```ini

[ req_ext ]

subjectAltName = @alt_names

[ alt_names ]

DNS.1 = domain.com

DNS.2 = www.domain.com

IP.1 = 192.168.1.100

通过以上完整流程,你已经掌握了Apache自签名SSL证书的核心技能。对于生产环境,建议结合具体业务需求选择商业证书或Let's Encrypt方案。

TAG:apache自己签发ssl证书,apache配置ssl证书,apache2安装ssl证书,ssl证书自签源码