前言
项目牵涉到做一个语音在线实时收集,然后进行asr识别的B/S应用。所以需要浏览器调用“麦克风”来获取用户语音。此时需要在localhost或者https下才能实现这样的功能。类似于google的语音翻译,如下所示:
内容
1.在阿里云控制台进入SSL证书(应用安全)界面
进入ssl证书
2.选择“免费证书”,点击创建证书后,会生成一条待申请的证书
然后点击该条记录的证书申请。
3.填写申请个信息
点击下一步进行信息验证,如果域名也是在阿里云申请的,操作就比较简单,会自动一键生成DNS解析记录,点击DNS信息验证,通过后就说明没问题,点击提交审核按钮.
域名 之前在阿里云已经申请过,现在点进去看域名即可。
如果对应的域名不在本ssl机器之上,那么进行操作:
大约等几分钟即可。
4. 下载nginx的证书,进行配置
审核通过后,证书状态会变为已签发状态,点击下载按钮。
下载服务器类型为Nginx的证书(其他服务器类型自行下载对应的)
5.配置nginx
将压缩包中的证书文件放到服务器的指定位置,这个位置要与nginx里配置的地址保持一致
nginx配置;我们进入nginx安装的目录:/usr/local/nginx,然后创建ssl目录。将证书存放到此目录下:
# HTTPS server
#
server {
listen 443 ssl;
server_name xxxx.xyz;
gzip on; # 注意是在当前的访问域名下开启有效
gzip_min_length 1k;
gzip_comp_level 6; # 压缩比例,比例越大,压缩时间越长。默认是1
gzip_types text/xml text/plain text/css application/javascript application/x-javascript application/rss+xml image/jpeg image/gif image/png; # 哪些文件可以被压缩
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
ssl_certificate /usr/local/nginx/ssl/9225710_xxxx.xyz.pem;
ssl_certificate_key /usr/local/nginx/ssl/9225710_xxxx.xyz.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location ^~ /audioTrans/ {
proxy_set_header host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8088/;
}
}
附录
1. the "ssl" parameter requires ngx_http_ssl_module
如果出现以下错误:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:153
参考下:http://events.jianshu.io/p/2fba66b52cd9
可以使用:
./configure --prefix=/usr/local/nginx/ --with-stream --with-http_ssl_module --with-pcre --with-http_v2_module --with-stream_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_sub_module
2.在配置的宿主机上可以访问https,但是在其他机器上访问不了
在宿主机访问:
https://xxxx.xyz/trans/#/audioTrans
出现下面结果:
在宿主机其他机器上访问:
4.云服务器的防火墙开启443端口:
firewall-cmd –zone=public –add-port=443/tcp –permanent 增加443端口
firewall-cmd –reload 重启防火墙
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。