Skip to content
on this page

扫码联系

编程学习&& IT

tian

腾讯云服务器快速搭建站点并配置ssl证书

1.安装nginx

TIP

首先,关于安装nginx,主要分为两种方式

    1. 自行去nginx下载相应的版本安装包nginx
    1. 直接在服务器上命令行操作下载安装nginx

在这里主要推荐第2种方式安装

进入官网下载nginx

image-20211009051838683.4c360112.png

通过Xshell等远程桌面应用连接云端服务器进安装依赖

WARNING

注意 这里十分重要,需要先安装依赖环境 再安装nginx, 跟着命令顺序依次进行即可安装成功

① 安装所需依赖

nginx
#1.安装所需依赖
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

② 下载nginx

nginx
#2.下载nginx
wget http://nginx.org/download/nginx-1.20.0.tar.gz
  
#3.解压缩包
tar -zxvf nginx-1.20.0.tar.gz

③ 进入nginx目录安装ssl模块

nginx
#4.进入到nginx目录下 
cd nginx-1.20.0/

#5.为了实现https功能需要安装ssl模块 
./configure --with-http_ssl_module

1673239766031.jpg

④ 编译安装 (默认安装在/usr/local/nginx目录下)

nginx
#6.执行编译、安装命令
make && make install

⑤ 查看nginx安装相关的文件位置信息

nginx
whereis nginx 

#进入路径
cd /usr/local/nginx/sbin

⑥ 启动nginx命令

nginx
#7.启动nginx
./nginx

#立刻停止nginx
nginx  -s stop

#杀死进程
killall nginx

# 查看 nginx 的运行进程
ps -ef | grep nginx

#重启
/nginx -s reload

启动成功后输入ip地址或域名即可出现如下页面1673241670925.jpg

Linux下的常用操作命令

nginx
# 进入默认站点目录
cd /usr/share/nginx/
ll
cd html/
ls
# 编辑 index.html 页面
vim index.html
# 按下 “i” 键编辑即可

# 不保存强制退出
:q!
# 保存
:w
# 保存并退出
:wq

# 只查看,不编辑
cat index.html

2.安装ssl证书

1. 创建cert文件夹

TIP

登录服务器,进入nginx目录下,创建存放证书的文件夹cert

nginx
cd /usr/local/nginx/conf  #进入Nginx默认安装目录。若修改过,则根据实际调整。

mkdir cert  #创建证书目录,命名为cert。

2. 上传SSL证书

TIP

上传 (key 、crt结尾的证书) 至/usr/local/nginx/conf/cert目录下

1673242885199.jpg

3. 编辑 nginx 根目录下的nginx.conf文件

TIP

修改配置文件,设置证书SSL信息

nginx
# 命令行编辑nginx.conf
vim /usr/local/nginx/conf/nginx.conf
nginx
# 修改证书文件及其域名
server {
     #SSL 默认访问端口号为 443
     listen 443 ssl; 
     #请填写绑定证书的域名
     server_name cloud.tencent.com; 
     #请填写证书文件的相对路径或绝对路径
     ssl_certificate cloud.tencent.com_bundle.crt; 
     #请填写私钥文件的相对路径或绝对路径
     ssl_certificate_key cloud.tencent.com.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1.2 TLSv1.3; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
         root html; 
         index  index.html index.htm;
     }
 }

验证配置文件是否存在问题

nginx
nginx -t 
  • 若报错,则重新配置或修改问题
  • 不报错,则忽略,进行下一步

TIP

如果想要将域名 http 自动跳转 -----> https

nginx
server {
 listen 80;
 #请填写绑定证书的域名
 server_name cloud.tencent.com; 
 #把http的域名请求转成https
 return 301 https://$host$request_uri; 
}

WARNING

注意: 这里 两个server可以同时一起去编辑 然后再 nginx -t 命令验证错误

若上一步操作正常, 接下来只需要重启nginx服务器即可

nginx
cd /usr/local/nginx/sbin  #进入Nginx服务的可执行目录

./nginx -s reload  #重新载入配置文件

偷懒小tips

TIP

这里上传一份完整的 nginx.conf配置文件 , 如果想要偷懒则可直接ctrl+c 复制到文件里

nginx
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/cp/www/dist;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    server {
     #SSL 默认访问端口号为 443
     listen 443 ssl; 
     #请填写绑定证书的域名
     server_name tinaer.cn; 
     #请填写证书文件的相对路径或绝对路径
     ssl_certificate /usr/local/nginx/conf/cert/tinaer.cn_bundle.crt; 
     #请填写私钥文件的相对路径或绝对路径
     ssl_certificate_key /usr/local/nginx/conf/cert/tinaer.cn.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1.2 TLSv1.3; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         #例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
         root /home/cp/www/dist; 
         index  index.html index.htm;
          }
      }
      server {
      listen 80;
      #请填写绑定证书的域名
      server_name tinaer.cn; 
      #把http的域名请求转成https
      return 301 https://$host$request_uri; 
      }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}