【环境配置】申请StartSSL免费CA证书,配置Nginx使用https访问,强制http跳转到https

个人用户,可以选择免费的DV证书。

StartSSL的免费DV证书:有效期一年,可以续,也就是永久免费。

申请步骤:

1、https://startssl.com  注册,邮箱接收验证码,生成客户端证书,下载双击导入证书到浏览器。

2、重启浏览器,登录startssl.com,进入控制台,选择申请免费证书,验证域名网站所有权;

3、最多填入5个网站域名,比如:domain.com www.domain.com api.domain.com admin.domain.com 这样4个;

4、openssl req -newkey rsa:2048 -keyout domain.com.key -out domain.com.csr 命令,输入密码,生成 csr、key文件;

5、将csr文件内容粘帖到startssl框框里, submit your Certificate Signing Request (CSR)。

6、成功后显示:Your certificate is issued, please click here to download the certificate, the intermediate certificate and the root CA certificate.
And you can retrieve your issued certificate at “Tool Box” – “Certificate List” at any time if you need。


Nginx配置SSL步骤:

1、用前面第4步骤生成的key文件,生成nginx的ssl_certificate_key文件:

cp domain.com.key domain.com.key.org
openssl rsa -in domain.com.key.org -out domain.com.org.key

2、nginx(根据下面代码适当修改配置):

server {
    listen 443 ssl;
    server_name domain.com www.domain.com;

    ssl on;
    ssl_certificate /etc/ssl/domain.com.crt;
    ssl_certificate_key /etc/ssl/domain.com.key;
}

3、配置完成。

nginx -t
nginx -s reload

以上命令没问题,就可以用https访问了。

4、强制将http跳转https:

  加一个80端口的server配置,将http的访问进行301转向到https

server {
         listen 80;
         server_name www.domain.com api.domain.com admin.domain.com;
         return 301 https://$server_name$request_uri;
 }

呵呵,以上配置是错误的,会把 http://admin.domain.com 跳转到https://www.domain.com,所以要将所有子域名分开写server配置单独跳转,如下:

 server {
         listen 80;
         server_name www.domain.com;
         return 301 https://$server_name$request_uri;
 }
 server {
         listen 80;
         server_name api.domain.com;
         return 301 https://$server_name$request_uri;
 }
 server {
         listen 80;
         server_name admin.domain.com;
         return 301 https://$server_name$request_uri;
 }



你可能感兴趣的:(环境配置)