如何给网站配置SSL证书

2018-11-26  本文已影响0人  bioinfo2011

配置SSL使得Nginx支持HTTPS协议(开发环境)

很多情况下,项目的前端页面可能已经上线(已发布),并且通过HTTPS协议来访问页面(一般情况下公司不会在项目中混合使用HTTP和HTTPS协议,即当页面是基于HTTPS协议进行请求的,那么对应页面中的静态资源也必须通过HTTPS协议来请求)。此时前面的Nginx配置已经不能满足当前的代理需求(直接加HTTPS方式请求本地静态资源直接报404),因此我们需要让本地的Nginx也支持HTTPS协议。下面我们一步一步的来完成Nginx的SSL配置。

一、生成私钥(server.key)及crt证书(server.crt)

首先需要创建一个目录来存放SSL证书相关文件

$ cd /etc/nginx$ sudo mkdir ssl$ cd ssl

1. 生成server.key

$ openssl genrsa -des3 -out server.key 2048

以上命令是基于des3算法生成的rsa私钥,在生成私钥时必须输入至少4位的密码。

2. 生成无密码的server.key

$ openssl rsa -in server.key -out server.key

3. 生成CA的crt

$ openssl req -new -x509 -key server.key -out ca.crt -days 3650

4. 基于ca.crt生成csr

$ openssl req -new -key server.key -out server.csr

命令的执行过程中依次输入国家、省份、城市、公司、部门及邮箱等信息。

5. 生成crt(已认证)

$ openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

二、 更改配置文件

1.  更改虚拟主机配置文件

vi /usr/local/nginx/conf/vhost/www.abc.com.conf

更改成如下面所示

server

{

listen 80;

listen 443 ssl;

ssl on;

ssl_certificate /root/ssl.crt;

ssl_certificate_key /root/ssl.key;

ssl_session_cache shared:SSL:10m;

ssl_session_timeout  10m;

server_name www.abc.com;

add_header Strict-Transport-Security "max-age=31536000";

}

保持文件,退出

二、 更改配置文件

重启nginx

$ sudo nginx -s reload

或者 lnmp nginx restart

参考自     https://zhuanlan.zhihu.com/p/31344617

上一篇下一篇

猜你喜欢

热点阅读