需求
调试webRTC 功能,需要在局域网搭建https发给我协议;
实现
环境
- 局域网已部署有nginx;
部署可参考专栏文章
- 已安装Openssl
未安装可以执行 sudo yum install openssl 这个命令进行安装
生成证书和私钥
生成私钥:打开命令提示符或终端窗口,执行以下命令以生成私钥文件:
openssl genpkey -algorithm RSA -out private.key
上述命令将生成一个名为 "private.key" 的私钥文件,使用 RSA 算法。
生成证书签名请求(CSR):执行以下命令以生成证书签名请求文件:
openssl req -new -key private.key -out csr.csr
上述命令将生成一个名为 "csr.csr" 的证书签名请求文件,其中包含了与私钥相对应的公钥以及其他证书请求相关的信息。在执行此命令时,将被要求提供一些证书信息,例如国家/地区、组织名称、公共名称等;
自签名证书:使用以下命令生成自签名证书,:
openssl x509 -req -in csr.csr -signkey private.key -out certificate.crt
上述命令将使用私钥对证书签名请求进行签名,并生成一个名为 "certificate.crt" 的自签名证书文件。
部署
- 将生成的文件发到etc/nginx/certs文件夹下
- 在nginx.conf新增以下配置
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name _;
ssl_certificate "/etc/nginx/certs/certificate.crt";
ssl_certificate_key "/etc/nginx/certs/private.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /home/screen/screen-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:18080/api;
}
}
重启nginx
service nginx restart
或者
./nginx -s reload
最后
请注意,自签名证书不会得到受信任的第三方机构的认可。如果需要获得由受信任的证书颁发机构(CA)签名的证书,需要将证书签名请求文件(CSR)提交给 CA,并按照他们的指示进行后续操作。