前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux、nginx部署https证书

linux、nginx部署https证书

原创
作者头像
挥刀北上
修改2020-11-11 14:19:48
2.1K0
修改2020-11-11 14:19:48
举报
文章被收录于专栏:Node.js开发

最近服务器的https证书过期了,所以重新申请证书,然后将证书下载到本地,因为是免费的所以要手动下载,这个证书因为免费所以不会自动续费延期,所以这玩意儿必须每年搞一次,而且要提前搞,还是有钱好啊,暂时没钱只能自己操作了。

证书申请完后,点击下载,下载nginx版本的证书,因为我们要用nginx部署,如图:

下载列表
下载列表

下载下来后,有两个文件,pem后缀文件的是证书,key后缀的文件是私钥。

接下来要进行如下操作:

1、将证书和私钥上传到服务器。

2、配置nginx配置文件。

3、重启nginx服务器。

首先第一步,我们将本地文件上传到linux服务器,这里我使用scp命令:

scp使用案例如下:

1、从本地复制到远程

命令格式:

代码语言:javascript
复制
scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;

应用实例:

代码语言:javascript
复制
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music 
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3 
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music 
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3

在实际操作中root@后面跟的有可能是你的服务器的公网ip。

我使用的命令为:

代码语言:javascript
复制
scp 4749899_www.geekclass.site.key root@99.99.99.99:/home/geek/nginx/conf/cert
scp 4749899_www.geekclass.site.pem root@99.99.99.99:/home/geek/nginx/conf/cert

然后将证书和秘钥分别改名为 site.pem和site.key,为了方便后面的配置使用

第二步修改nginx的配置文件conf,改成如下配置:

代码语言:javascript
复制
#以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
server {
         listen 443 ssl; #配置HTTPS的默认访问端口号为443。
         #此处如果未配置HTTPS的默认访问端口,
         #可能会造成Nginx无法启动。
         #Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。
         server_name www.certificatestests.com; 
         #将www.certificatestests.com修改为您证书绑定的域名,
         #例如:www.example.com。如果您购买的是通配符域名证书,
         #要修改为通配符域名,例如:*.aliyun.com。
         
         root html;
         index index.html index.htm;
         ssl_certificate cert/domain site.pem;  
         ssl_certificate_key cert/domain site.key; 
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
         #使用此加密套件。
         
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
         ssl_prefer_server_ciphers on;
         location / {
           root html;  #站点目录。
           index index.html index.htm;
         }
      }

我的服务器前面配置过,所以这里我没有动,我的只需要进行第一步替换证书即可,如何你是新配置,这里就需要配置了。

第三步,重启nginx,nginx的命令如下:

命令截图
命令截图

重启的命令为 nginx -s -reload;

至此就结束了,如果你想让http的请求跳转到https,那么还需要配置一下conf文件,配置如下:

代码语言:javascript
复制
server {
 listen 443 ssl;
 server_name www.certificatestests.com; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。
rewrite ^(.*)$ https://$host$1 permanent;   #将所有HTTP请求通过rewrite重定向到HTTPS。
 location / {
index index.html index.htm;
}
}

只是添加了一个rewrite命令配置。

以上便是我用nginx配置linux服务器https证书的过程,希望对你有所帮助。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、从本地复制到远程
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档