先了解下https:nginx
HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层。HTTPS 不一样于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为443。浏览器
SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间创建一条安全通道,从而实现:
一、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;
二、用户能够经过服务器证书验证他所访问的网站是否真实可靠。安全
如何得到SSL证书服务器
正式使用的话确定是付钱由CA机构给颁发合法证书;ide
内部使用能够本身生成SSL证书(这个用户访问会提示证书无效或过时,存在安全隐患等等,内部人用直接信任继续访问便可使用)网站
生成SSL证书步骤:加密
$ openssl genrsa -des3 -out 33iq.key 1024ssl
$ openssl rsa -in 33iq.key -out 33iq_nopass.keyopenssl
$ openssl req -new -key 33iq.key -out 33iq.csr域名
$ openssl x509 -req -days 365 -in 33iq.csr -signkey 33iq.key -out 33iq.crt
第3个命令是生成证书请求,会提示输入省份、城市、域名信息等,重要的是,email必定要是你的域名后缀的。这样就有一个 csr 文件了,提交给 ssl 提供商的时候就是这个 csr 文件。固然我这里并无向证书提供商申请,而是在第4步本身签发了证书。
到这里证书就生成成功到目标目录下
名字为33iq.crt 还有33iq_nopass.key 名字能够根据本身须要在生成的时候进行修改
如今就是如何使用:
在本身网站的配置文件中增长如下配置;
描述:加上监听端口443,而后这个ssl on 我原本是加上的 可是发现加上http和https不能同时使用 去掉就能够http和https同时使用, 因此就给去掉了,下面的红色的就是相关证书信息的所在目录。
listen 443 ssl;
#ssl on;
ssl_certificate /etc/nginx/33iq.crt;
ssl_certificate_key /etc/nginx/33iq_nopass.key;
重启以后网站就能够用https访问啦