Nginx启用ssl以及免费证书申请

主要是这个东西,折腾了我两天,因此记录下来。html

最开始是在meteor下面调用一个webservice,可是发现meteor项目的发布环境时https,因此请求的webservice也必须时webservice, 没办法,就把webservice的服务器改为了webservice的, 弄好之后一看,仍是不行,报错显示说请求了一个不安全的https连接,仍是不能正常调用webservice. 无法发只能老老实实的申请证书。linux

     首先是:配置好环境,简单提提, 将项目部署在tomcat下, 安装nginx作反向代理(就是把全部的请求直接转发到tomcat)nginx

安装nginx >  apt-get install nginx
查看ng的配置文件位置:nginx -t (其实这是测试配置文件是否正确的命令) 

假设nginx的配置文件在:/ect/nginx/nginx.conf, 打开这个文件,通常会看到下面这一句:web

    include /etc/nginx/conf.d/*.conf;

表示引入conf.d目下全部以 .conf 结尾的文件,tomcat

进入这个目录,并vi xm2013.com.conf,  在里面输入反向代理,跳转到tomcat的内容。安全

 server {
        listen 80;
        server_name .xm2013.com;
        return 301 https://$server_name$request_uri;
    }

 server {
        listen 443;
        server_name .xm2013.com;

        #access_log /var/log/nginx/aldwork-v2.access;
        #error_log /var/log/nginx/aldwork-v2.error;

        ssl on; ssl_certificate /root/1_xm2013.com_bundle.crt;
        ssl_certificate_key  /root/xm2013.key;
        ssl_protocols TLSv1.2; 
        error_page 502 503 504 /index.html;

        location / {
            proxy_pass http://localhost:8080;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $http_host;

            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forward-Proto http;
            proxy_set_header X-Nginx-Proxy true;
            proxy_redirect off;
        }
    }

这里简单备注:服务器

  1,红色部分表示启用ssl, 而且证书是:/root/1_xm2013.com_bundle.crt,私钥是:/root/xm2013.key测试

  2,这里监听了两个端口:80端口(http)请求,并将全部的http请求跳转到https请求,  440端口(https)请求,这里先启用ssl, 再把请求转发到tomcat.
阿里云

 

申请ssl证书,
spa

进入:http://www.startssl.com/

点击:sign-up

输入email, 点击线面发送验证码,


登录邮箱,复制收到的验证码, 便可注册成功, 接下来注册证书。


点击:Certificates Wizard 在最后一列,Free ....什么的,表示免费,点击最后一列的: DV SSL Certificate

这里注意:

openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr

这条命令能够生成nginx配置ssl时,须要的key,

命令在服务器下面运行,也就是你要申请的域名绑定的服务器。

youname: 域名,

运行命令是会提示输入密码:这个密码须要记住,由于nginx启用ssl之后,每次重启须要输入的密码,就是这个密码。

生成好之后, linux在 /root 下面,会生成:yourname.keyyourname.csr两个文件。

打开.csr文件,所有复制里面的内容,粘贴到以下:

生成成功后,进入证书管理页面,点击Retrieve(下载)证书。

下载下来的是的压缩包,在里面找到: 找到nginx下面的.crt文件,传到服务器, nginx里面的路径和上传的crt文件路径保持一致。

 

在startssl.com里面添加新域名,

在Certificates Wizard里面,点击Add Domain. 会出现以下图:

 输入域名,点击:Continue,

若是是阿里云注册的域名,并开启了隐私保护,第一个会变成如上图所示,须要在阿里云的域名管理取消隐私保护,在此刷新,出现以下图:

第一个就变成了,你注册域名时的邮箱了,点击发送,会在邮箱里收到验证码,输入收到的验证码,点击验证。

 新域名就添加成功。

相关文章
相关标签/搜索