从0开始搭建个人博客《第六期:Nginx与SSL证书安装》

目录

一、安装前准备工作

二、Nginx安装包下载

三、安装Nginx

四、免费SSL证书申请与下载

五、结语


一、安装前准备工作

        为了编译Nginx源码,我们需要安装标准的GCC编译器,另外,Nginx的一些模块还需要依赖其他第三方库,通常有pcre库(支持rewrite模块)、zlib库(支持gzip模块)和openssl库(支持ssl模块)。

        通过以下指令查看Linux服务器上是否已经安装pcre、zlib和openssl。

#查看是否安装了gcc编译器
gcc -v
#查看是否安装了openssl
rpm -qa openssl 
#查看是否安装了zlib
rpm -qa zlib
#查看是否安装了
pcrerpm -qa pcre

图片

图片

如果没有安装,则通过以下指令进行安装。

#安装gcc、openssl、zlib、pcre
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel

二、Nginx安装包下载

        访问官网:https://nginx.org/

图片

        下载最新版本的安装包:nginx-1.25.4.tar.gz

图片

图片

三、安装Nginx

        登录云服务器,将下载好的Nginx安装包压缩文件,通过Xftp工具,上传到/www/temp目录下。

图片

图片

        切换到/www/temp目录下执行以下指令,将压缩包解压至/www目录下。

tar -zxvf nginx-1.25.4.tar.gz -C ../

图片

        解压完成后得到 nginx-1.25.4 目录。

图片

        切换到 nginx-1.25.4 目录下。

图片

        使用以下指令,运行configure脚本程序,通过--prefix=path 指定nginx的安装目录,一般存放于/usr/local下的nginx目录下。

./configure --prefix=/usr/local/nginx

图片

        指令执行完成后,nginx-1.25.4 目录下多出一个Makefile文件。

图片

        使用以下指令编译Nginx源码。

 make

图片

编译完成后,使用以下指令安装Nginx。

make install

图片

        指令执行完成后,切换到nginx的安装目录/usr/local/nginx下。

图片

        在当前安装目录/usr/local/nginx下使用以下指令,启动、关闭、重启nginx服务。

#以指定配置文件启动nginx,-c 后是nginx配置文件所在路径
./sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#重启nginx
./sbin/nginx -s reload

#停止nginx
./sbin/nginx -s stop

#其他nginx相关的操作指令
#在启动服务器之前,我们可以通过如下指令来查看Nginx服务器配置文件是否有语法错误
./sbin/nginx -t

#通过如下指令可以查看Nginx服务器版本
./sbin/nginx -v

        执行完nginx启动指令后,通过以下指令查看nginx是否启动成功,出现如下图所示,则说明nginx服务启动成功。

ps -ef|grep nginx

图片

        通过浏览器,地址输入服务器ip加端口,访问nginx服务,端口号为80,如下图所示。

图片

四、免费SSL证书申请与下载

        以阿里云为例,登录控制后台,进入数字证书管理服务/SSL证书/免费证书,点击创建证书。

图片

        在右侧跳出的弹窗中,填写自己申请的域名、联系方式等信息,填写完成后点击提交审核。

图片

图片

        证书申请通过后,点击下载,服务类型选择Nginx,点击下载。

图片

图片

图片

        将下载好的安装包解压,得到下图格式为.key,.pem两个文件。

图片

        将以上的证书文件和私钥文件上传到Nginx服务器的证书目录 /usr/local/nginx/conf/cert下,如果没有cert这个目录,则需要使用以下指令手动创建下。

mkdir mkdir /usr/local/nginx/conf/cert

图片

        接着编辑Nginx配置文件nginx.conf,修改与证书相关的配置。

vim /usr/local/nginx/conf/nginx.conf

        找到HTTPS server配置,把前面#删除,修改内容如下:

server {
    #HTTPS的默认访问端口443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    listen 443 ssl;
    
    #填写证书绑定的域名<yourdomain>
    server_name <yourdomain>;
    
    #填写证书文件名称<cert-file-name> 
    ssl_certificate cert/<cert-file-name>.pem; 
    #填写证书私钥文件名称<cert-file-name> 
    ssl_certificate_key cert/<cert-file-name>.key;
    
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    
    #默认加密套件
    ssl_ciphers HIGH:!aNULL:!MD5;
    
    #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
    #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
    #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    
    #表示优先使用服务端加密套件。默认开启
    ssl_prefer_server_ciphers on;
    
    location / {
         root html;
         index index.html index.htm;
    }
}

        配置HTTP请求自动跳转HTTPS,配置完成后保存退出。

server {    
    listen 80; 
    #填写证书绑定的域名<yourdomain>
    server_name <yourdomain>;
    #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    rewrite ^(.*)$ https://$host$1;
    location / {
       index index.html index.htm;
    }
}

图片

        使用以下指令检查nginx配置文件是否有语法错误。

#在启动服务器之前,我们可以通过如下指令来查看Nginx服务器配置文件是否有语法错误
./sbin/nginx -t

        如果出现下图所示错误,这个错误表明Nginx在尝试使用SSL(安全套层)配置时发现系统中没有启用ngx_http_ssl_module模块。

图片

解决办法:

1、查看nginx版本,可以看到configure arguments 没有任何关于SSL的配置(--with-http_ssl_module 标志)。

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

图片

2、进入到前面步骤下载的nginx的源码安装包的目录下,注意不是/usr/local/nginx,是带有版本号的。

cd /www/nginx-1.25.4

 使用以下命令进行编译和安装SSL模块。

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

make install

图片

        安装完成后,再次查看nginx版本,出现如下图所示,则说明安装成功。

图片

        重启Nginx。

./sbin/nginx -s reload

        通过浏览器,地址输入服务器ip加端口,访问nginx服务,端口号为80。如下图所示可以看到有锁了,说明证书安装成功。

图片

五、结语

        扫下方二维码关注或访问个人网站 https://www.xiaolin-code.com/,第一时间获取最新文章更新。

  • 26
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值