您的位置:首页 > 理论基础 > 计算机网络

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

2016-07-27 11:44 1441 查看
个人用户,可以选择免费的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; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: