使用OpenSSL生成自签名证书

自签名SSL证书在浏览器中不被信任,可能导致安全警告。为确保网站安全,建议使用受信任的CA机构提供的免费SSL证书。生成SSL证书的步骤包括:使用openssl生成私钥、创建证书申请文件csr、签名证书。然而,最终仍建议直接从CA机构获取证书。

OpenSSL 用于传输层安全(TLS)协议的开源工具包,以前称为安全套接字层(Secure Sockets Layer)协议。

自签名SSL证书的风险

自签名SSL证书是不受浏览器信任的,即使网站安装了自签名SSL证书,当用户访问时浏览器还是会持续弹出警告。

为了网站的安全,请停止使用自签名SSL证书,推荐使用受信任的CA机构提供的免费且安全的SSL证书。

生成步骤

通过openssl生成私钥

openssl genrsa -out server.key 1024

根据私钥生成证书申请文件csr

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

这一步会提示你补充一些信息,Common Name可以输入:*.yourdomain.com,这种方式生成通配符域名证书。

使用私钥对证书申请进行签名从而生成证书

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

➜  ssl ls
server.crt server.csr server.key

这样10年有效期的自签名证书就生成好了,可以把它装在服务上,假如你用的Nginx:

server {
    listen          443 ssl http2;
    server_name     youdomain.com;
    root            /data/dist/;

    proxy_set_header  Host             $host;
    proxy_set_header  X-Real-IP        $remote_addr;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

    ssl_certificate "/etc/nginx/ssl/server.crt";
    ssl_certificate_key "/etc/nginx/ssl/server.key";

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

}

到浏览器查看,提示:
在这里插入图片描述

所以,还是直接去CA机构签发证书吧。

在 CentOS 系统上使用 OpenSSL 工具生成自签名 SSL 证书是一个常见任务,适用于测试环境或内部服务。以下是完整的生成步骤和注意事项。 ### 生成自签名 SSL 证书的步骤 1. **生成私钥** 首先,生成一个 RSA 私钥,用于签署证书请求。可以使用以下命令: ```bash openssl genrsa -out server.key 2048 ``` 这将生成一个 2048 位的私钥文件 `server.key`,适用于大多数现代安全需求[^3]。 2. **创建证书签名请求 (CSR)** 使用生成的私钥创建一个证书签名请求文件: ```bash openssl req -new -key server.key -out server.csr ``` 在执行过程中,系统会提示输入一些信息,如国家、组织名称、通用名称(通常是域名)等。这些信息将被嵌入到 CSR 中[^3]。 3. **生成自签名证书** 使用 CSR 和私钥生成自签名证书。以下命令将生成一个有效期为 365 天的证书: ```bash openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt ``` 此证书 `server.crt` 可用于配置 HTTPS 服务,如 Apache 或 Nginx[^2]。 4. **合并私钥和证书(可选)** 某些服务(如 Coturn)可能需要将私钥和证书合并成一个文件: ```bash cat server.key server.crt > server.pem ``` ### 配置 Apache 使用自签名证书(可选) 若计划将证书用于 Apache 服务器,需编辑 Apache 的 SSL 配置文件(通常为 `/etc/httpd/conf.d/ssl.conf`),并指定证书路径: ```apache SSLEngine on SSLCertificateFile "/path/to/server.crt" SSLCertificateKeyFile "/path/to/server.key" ``` 完成配置后重启 Apache 服务以应用更改。 ### 注意事项 - 自签名证书不会被公共信任链认可,因此浏览器或客户端可能会显示安全警告。 - 对于生产环境,建议使用由可信证书颁发机构(CA)签发的证书。 - 如果需要更高的安全性,可以使用 `-addext` 参数为证书添加扩展,如 SAN(Subject Alternative Name)字段[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值