最近公司突然提出要用https了 原因是对苹果连接的接口只允许https通过了,哎无处不坑爹(仔细想下也是应该的毕竟安全重要)
首先我们要重新编译nginx使其能支持ssl:
这是我编译的nginx的参数:作为参考--prefix=/opt/nginx/ --user=nginx --with-http_ssl_module --with-http_gunzip_module --without-http_rewrite_module --without-http_fastcgi_module --without-http_upstream_ip_hash_module
编译nginx需要安装些赖 如openssl 等 编译报错可百度报错信息,看差些什么东西 (不是我不把依赖写全 ,只是多折腾几下 加深下影响也好嘛)
编译完成后我们的nginx就可以支持https了,修改默认的nginx.conf :
#HTTPS server
#
server {
listen 443 ssl;
server_name master;
ssl on;
ssl_certificate /opt/nginx/conf/server.crt;
ssl_certificate_key /opt/nginx/conf/server.key;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
将原来注释掉的server部分去掉注释 ssl_certificat ,ssl_certificate_key 后面跟上证书的key和crt文件位置
然后./sbin/nginx -t 查看nginx 能否正常启动 (需要输入证书的密码)
然后就到最重要的部分了---申请ssl证书
我们这里申请的是免费的证书:startssl.com/Validate/DomainValidate
申请的免费证书使用时间为3年
进入网站使用邮箱注册,登陆,没次登陆时会有邮箱验证
然后我们就需要填写一些基本信息,我没有填写,登陆后会看到一个控制面板
点击这里选择免费的证书
选择这里点击continue然后输入你买的域名,
后面会whois你的域名信息,会给你绑定域名的邮箱发一封邮件验证,
然后要求你绑定二级域名之类的 按照提示填写就行了
在linux的nginx 目录下新建一个ssl文件夹,cd到ssl
执行如下命令:openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr
根据提示输入你的信息 (要记住你填写的信息,地址可以随便填写,密码要记住,之后要用)
执行成功后,会生成一个youname.csr的文件
cat youname.csr 将得到的信息填入
点击完成,
之后你的ssl证书就得到了(可能是马上就有,也可能要等startssl给你发邮件)
默认得到的ssl证书,是个压缩包(包含nginx apache iis的所需要的证书)
然后你只需把证书拷贝的nginx对应的目录就行
启动nginx ,输入你的证书密码 然后通过域名访问你就能看到左上角的https连接了