Nginx配置SSL证书

申请SSL证书

直接申请免费的。

https://startssl.com/

按照提示注册,完成邮箱及域名认证,申请过程中要求你自己生成key文件

openssl req -newkey rsa:2048 -keyout myweb.key -out myweb.csr
这里问你输入一个passphrase,选择一个容易记得,下一步会需要输入。

Country Name (2 letter code) [AU]:US  #国家代码
State or Province Name (full name) [Some-State]:New York #省份
Locality Name (eg, city) []:NYC  #城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc #公司名称
Organizational Unit Name (eg, section) []:   #部门名称
Common Name (e.g. server FQDN or YOUR name) []: www.example.com                  
Email Address []: admin@example.com  #管理员邮箱

把 myweb.csr 文件内容复制到网站里面去。然后 myweb.key 保留,一会nginx配置需要用到。

myweb.key 文件如果设置有passphrase的,我们需要去掉private key的passphrase才能让Nginx自由自在的启动。

sudo cp myweb.key myweb.key.org
sudo openssl rsa -in myweb.key.org -out myweb.key

然后生成好 crt 证书文件并下载,例如为 myweb.crt。

配置nginx

把上面生成的 myweb.key 和 下载的证书文件 1_myweb.bundle.crt 放到nginx配置文件夹下面:

cp myweb.key 1_myweb.bundle.crt /etc/nginx/ssl/

然后在nginx配置文件中加上:

server {
        listen 443 ssl;
        server_name www.myweb.com;
        ssl_certificate /etc/nginx/ssl/1_myweb_bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/myweb.key;
        add_header Strict-Transport-Security "max-age=31536000"; 
        return 301 https://myweb.com$request_uri;
}

server {
        listen 443;

        ssl_certificate /etc/nginx/ssl/1_myweb_bundle.crt;
        ssl_certificate_key /etc/nginx/ssl/myweb.key;
        ssl on;
        server_name myweb.com;
        root /home/deploy/www/myweb.com;
        index index.html index.htm;

}