ssl新闻资讯

文档中心

Linux瀹夎绉佹湁HTTPS璇佷功璇﹁В鎵嬫妸鎵嬫暀浣犳惌寤哄畨鍏ㄥ姞瀵嗛€氶亾

时间 : 2025-09-27 16:24:02浏览量 : 1

2Linux瀹夎绉佹湁HTTPS璇佷功璇﹁В鎵嬫妸鎵嬫暀浣犳惌寤哄畨鍏ㄥ姞瀵嗛€氶亾

在当今互联网环境中,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配置证书