文档中心
Linux瀹夎绉佹湁HTTPS璇佷功璇﹁В鎵嬫妸鎵嬫暀浣犳惌寤哄畨鍏ㄥ姞瀵嗛€氶亾
时间 : 2025-09-27 16:24:02浏览量 : 1

在当今互联网环境中,HTTPS已成为网站安全的标配。无论是企业内网系统还是个人项目,使用私有HTTPS证书(即自签名或私有CA颁发的证书)可以有效防止数据被窃听或篡改。本文将以Linux系统为例,用最通俗的语言和实际案例,带你一步步完成私有HTTPS证书的安装与配置。
一、为什么需要私有HTTPS证书?
1.1 场景举例
- 内网服务加密:比如公司内部的GitLab、NAS或OA系统,使用私有证书既节省成本又保障安全。
- 开发测试环境:程序员本地调试时,模拟HTTPS环境(例如测试微信小程序必须用HTTPS)。
- 避免浏览器警告:自签名证书默认会被浏览器标记为“不安全”,通过私有CA可解决这一问题。
1.2 与公共证书的区别
- 公共证书(如Let's Encrypt):免费但需域名验证,适合对外服务。
- 私有证书:完全自主控制,无需第三方审核,适合内部网络。
二、准备工作
2.1 工具与材料
- Linux服务器(以Ubuntu为例)
- OpenSSL(大多数Linux系统已预装)
- 目标服务(如Nginx/Apache)
2.2 检查OpenSSL
```bash
openssl version
```
若未安装,执行:
sudo apt update && sudo apt install openssl -y
三、生成私有HTTPS证书(3种方式)
3.1 快速生成自签名证书(适合测试)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/selfsigned.key \
-out /etc/ssl/certs/selfsigned.crt
- `-nodes`:私钥不加密(避免服务重启需输密码)。
- `-days 365`:有效期1年。
填写示例:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany
Common Name (eg, your name or your server's hostname) []:dev.mydomain.com
关键!必须填域名或IP
3.2 创建私有CA+签发证书(企业级推荐)
Step1: 生成CA根证书
生成CA私钥
openssl genrsa -out myCA.key 2048
生成CA根证书(有效期10年)
openssl req -x509 -new -key myCA.key -days 3650 -out myCA.crt \
-subj "/CN=My Private CA/O=My Company"
Step2: 签发服务器证书
生成服务器私钥和CSR请求文件
openssl req -newkey rsa:2048 -nodes \
-keyout server.key \
-out server.csr \
-subj "/CN=internal-app.mycompany.com"
CA签署服务器证书(添加SAN扩展支持IP和域名)
echo "subjectAltName=DNS:internal-app.mycompany.com,IP:192.168.1.100" > ext.cnf
openssl x509 -req -in server.csr \
-CA myCA.crt -CAkey myCA.key -CAcreateserial \
-out server.crt -days 3650 \
-extfile ext.cnf
最终得到:
server.key → 服务器私钥
server.crt → 服务器公钥+CA签名链
3.3 PKCS12格式转换(Java/Tomcat专用)
```bash
openssl pkcs12 -export \
-in server.crt \
-inkey server.key \
-out keystore.p12 \
-name "tomcat_ssl"
输入密码后即可供Tomcat使用。
四、配置Web服务示例
4.1 Nginx配置
编辑站点配置文件:
```nginx
server {
listen 443 ssl;
ssl_certificate /etc/ssl/certs/server.crt;
ssl_certificate_key /etc/ssl/private/server.key;
TLS优化参数
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
测试并重载:
sudo nginx -t && sudo systemctl reload nginx
4.2 Apache配置
```apache
SSLEngine on
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
HSTS增强安全
Header always set Strict-Transport-Security "max-age=63072000"
五、客户端信任私有CA的终极方案
若不想看到浏览器警告,需将CA根证书导入到受信列表:
5.1 Windows系统
双击`myCA.crt` → “安装证书” → “受信任的根证书颁发机构”。
5.2 Linux系统(CentOS/Ubuntu)
sudo cp myCA.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
验证是否成功
openssl verify /etc/ssl/certs/server.crt
5.3 Android/iOS移动端
通过邮件发送`.crt`文件 → 手机点击安装描述文件。
六、常见问题排查
1. 浏览器仍提示不安全
→ SAN字段未包含当前访问的域名/IP。
2. Nginx报错"SSL_CTX_use_PrivateKey_file"
→ Key文件权限问题:确保私钥为600权限且归属正确。
3. curl测试返回空白
```bash
curl --cacert /path/to/myca.crt https://your-site.com ```
→ `--cacert`显式指定信任的CA。
通过以上步骤,你已经成功在Linux上部署了私有HTTPS加密体系。无论是开发测试还是生产内网,这套方法都能灵活适配。记得定期更新过期证书哦!
TAG:linux安装私有https证书,linux如何安装httpd,linux安装证书ssl教程,linux如何安装证书,linux添加证书,linux配置证书