使用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签发的证书,自签名证书仅适用于测试或内网环境。
通过以上步骤,即可使用OpenSSL成功生成自签名证书并配置到服务器中。