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机构签发证书吧。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。