Nginx 配置 HTTPS的详细过程

14 篇文章 0 订阅

本文主要介绍了Nginx 配置 HTTPS 完整过程,包括nginx 的 ssl 模块安装,ssl 证书部署,nginx.conf 配置,重启 nginx无信息提示就成功啦,本文给大家介绍的非常详细,需要的朋友可以参考下

配置站点使用 https,并且将 http 重定向至 https。

1. nginx 的 ssl 模块安装

查看 nginx 是否安装 http_ssl_module 模块。

1

$ /usr/local/nginx/sbin/nginx -V

如果出现 configure arguments: --with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 nginx.conf 配置)。

下载 nginx 安装包, nginx官网1.14.1稳定版本tar.gz包。

百度网盘下载地址:

链接: https://pan.baidu.com/s/1_rMCsr3Dtyohoh3CxbcZ9w 提取码: p3tn 

1

2

3

# 下载安装包到 src 目录

$ cd /usr/local/src

$ wget http://nginx.org/download/nginx-1.14.1.tar.gz

解压安装包。

1

$ tar -zxvf nginx-1.14.1.tar.gz

配置 ssl 模块。

1

2

$ cd nginx-1.14.1

$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module

  • 使用 make 命令编译(使用make install会重新安装nginx),此时当前目录会出现 objs 文件夹。
  • 用新的 nginx 文件覆盖当前的 nginx 文件。

1

$ cp ./objs/nginx /usr/local/nginx/sbin/

再次查看安装的模块(configure arguments: --with-http_ssl_module说明ssl模块已安装)。

1

$ /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.14.1

configure arguments: –with-http_ssl_module

2. ssl 证书部署

  • 下载申请好的 ssl 证书文件压缩包到本地并解压(这里是用的 pem 与 key 文件,文件名可以更改)。
  • 在 nginx 目录新建 cert 文件夹存放证书文件。

1

2

$ cd /usr/local/nginx

$ mkdir cert

  • 将这两个文件上传至服务器的 cert 目录里。

这里使用 mac 终端上传至服务器的 scp 命令(这里需要新开一个终端,不要使用连接服务器的窗口):

1

2

$ scp /Users/yourname/Downloads/ssl.pem root@xxx.xx.xxx.xx:/usr/local/nginx/cert/

$ scp /Users/yourname/Downloads/ssl.key root@xxx.xx.xxx.xx:/usr/local/nginx/cert/

scp [本地文件路径,可以直接拖文件至终端里面] [<服务器登录名>@<服务器IP地址>:<服务器上的路径>]

3. nginx.conf 配置

编辑 /usr/local/nginx/conf/nginx.conf 配置文件:

  • 配置 https server。

注释掉之前的 http server 配置,新增 https server:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

server {

    # 服务器端口使用443,开启ssl, 这里ssl就是上面安装的ssl模块

    listen       443 ssl;

    # 域名,多个以空格分开

    server_name  baidu.com www.baidu.com;

<span class="hljs-comment"># ssl证书地址</span>

<span class="hljs-attribute">ssl_certificate</span>     /usr/local/nginx/cert/ssl.pem;  <span class="hljs-comment"># pem文件的路径</span>

<span class="hljs-attribute">ssl_certificate_key</span/usr/local/nginx/cert/ssl.key; <span class="hljs-comment"># key文件的路径</span>

<span class="hljs-comment"># ssl验证相关配置</span>

<span class="hljs-attribute">ssl_session_timeout</span>  <span class="hljs-number">5m</span>;    <span class="hljs-comment">#缓存有效期</span>

<span class="hljs-attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;    <span class="hljs-comment">#加密算法</span>

<span class="hljs-attribute">ssl_protocols</span> TLSv1 TLSv1.<span class="hljs-number">1</span> TLSv1.<span class="hljs-number">2</span>;    <span class="hljs-comment">#安全链接可选的加密协议</span>

<span class="hljs-attribute">ssl_prefer_server_ciphers</span> <span class="hljs-literal">on</span>;   <span class="hljs-comment">#使用服务器端的首选算法</span>

<span class="hljs-attribute">location</span> / {

    <span class="hljs-attribute">root</span>   html;

    <span class="hljs-attribute">index</span>  index.html index.htm;

}}

将 http 重定向 https

1

2

3

4

5

server {

    listen       80;

    server_name  baidu.com www.baidu.com;

    return 301 https://$server_name$request_uri;

}

4. 重启 nginx

1

$ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

如果 80 端口被占用,用kill [id]来结束进程:

1

2

# 查看端口使用

$ netstat -lntp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0: LISTEN 21307/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN 3072/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0😗 LISTEN 21307/nginx: master

1

2

# 结束 80 端口进程

$ kill 21307

再次重启 nginx :

无信息提示就成功啦~

到此这篇关于Nginx 配置 HTTPS 完整过程的文章就介绍到这了,更多

转自:微点阅读   https://www.weidianyuedu.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置Nginx同时支持HTTP和HTTPS,您需要进行如下步骤: 1. 安装Nginx: 在Ubuntu中,可以使用以下命令安装Nginx: ``` sudo apt-get update sudo apt-get install nginx ``` 2. 配置HTTP: 默认情况下,Nginx已经配置为监听端口80,并将HTTP流量转发到正确的位置。您可以使用文本编辑器打开`/etc/nginx/sites-available/default`文件进行进一步配置: ``` sudo nano /etc/nginx/sites-available/default ``` 在`server`块中添加以下内容,以配置HTTP: ``` server { listen 80; server_name your_domain.com; location / { # 配置HTTP的处理逻辑 } } ``` 将`your_domain.com`替换为您的域名,然后保存并关闭文件。 3. 配置HTTPS: 要启用HTTPS,您需要获得一个有效的SSL证书。您可以购买商业证书,或使用免费的Let's Encrypt证书。安装并配置certbot工具来获取Let's Encrypt证书: ``` sudo apt-get install certbot sudo certbot certonly --nginx -d your_domain.com ``` `your_domain.com`替换为您的域名。根据提示完成证书申请过程。 4. 更新Nginx配置以支持HTTPS: 使用文本编辑器打开`/etc/nginx/sites-available/default`文件,并添加以下内容以配置HTTPS: ``` server { listen 443 ssl; server_name your_domain.com; ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem; location / { # 配置HTTPS的处理逻辑 } } ``` 将`your_domain.com`替换为您的域名,并确保`ssl_certificate`和`ssl_certificate_key`路径正确指向您的证书文件。保存并关闭文件。 5. 重启Nginx: 完成配置后,使用以下命令重启Nginx以使更改生效: ``` sudo service nginx restart ``` 现在,您的Nginx服务器应该同时支持HTTP和HTTPS。您可以根据需要在每个`location`块中定义适当的处理逻辑来区分HTTP和HTTPS请求

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值