openssl怎么自签名证书

时间:2025-03-27 21:35:41 励志网名

使用OpenSSL自签名证书的步骤如下,综合多个权威来源整理如下:

一、准备工作

安装OpenSSL

确保系统已安装OpenSSL。若未安装,可通过包管理器安装(如Linux系统使用`yum install openssl`或`apt-get install openssl`)。

创建CA(可选)

若需为多个服务签发证书,建议先创建CA根证书。 - 生成CA私钥:

```bash

openssl genrsa -out ca.key 4096

```

- 生成自签名CA证书:

```bash

openssl req -x509 -new -nodes -key ca.key -sha256 -days 1000 -out ca.crt

```

- 配置CA权限(可选):删除私钥密码以便自动化部署。

二、生成服务器证书

生成私钥

```bash

openssl genrsa -out server.key 2048

```

可添加密码保护(如`-passout pass:yourpassword`)。

创建证书签名请求(CSR)

```bash

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

```

填写信息栏,如国家、组织名称、通用名称(建议使用通配符,如`*.yourdomain.com`)。

生成自签名证书

```bash

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

```

- `-days 3650`:设置证书有效期为10年(3650天)。

三、证书格式转换(可选)

部分服务需PEM格式公链证书:

```bash

openssl x509 -in server.crt -out server.pem -outform PEM

```

四、配置服务器使用证书

配置Nginx

将`server.crt`和`server.key`复制到Nginx的SSL目录(如`/etc/nginx/ssl`),并修改配置文件:

```nginx

server {

listen 443 ssl;

server_name yourdomain.com;

ssl_certificate /etc/nginx/ssl/server.crt;

ssl_certificate_key /etc/nginx/ssl/server.key;

其他SSL配置...

}

```

重启Nginx服务使配置生效:

```bash

systemctl restart nginx

```

其他服务配置

根据服务类型(如Tomcat、Apache)配置SSL参数,通常涉及`server.xml`或类似配置文件。

注意事项

安全性:

自签名证书不会被浏览器默认信任,需手动导入(如Windows的“受信任的根证书颁发机构”)。

CA管理:建议妥善保管私钥,避免泄露。多服务共享CA时需同步更新。

替代方案:生产环境建议使用受信任的CA签发的证书,自签名证书仅适用于测试或内网环境。

通过以上步骤,即可使用OpenSSL成功生成自签名证书并配置到服务器中。