Nginx 环境怎样部署SSL证书?

Nginx是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。现在越来越多的集成环境都使用了Nginx服务器,如军哥的LNMP一键包、AMH主机面板、OneinStack、宝塔面板等,如果您为了装逼(安全)考虑,打算给网站部署SSL证书,应该如何操作呢?

一、申请SSL证书

国外的 Let’s Encrypt 和国内的沃通都可以申请免费的SSL证书,当然也有很多收费的,如果只是个人博客网站,其实免费的足矣,可以参考文章:沃通免费SSL证书申请Let’s Encrypt 免费SSL证书申请,申请免费的SSL证书。

二、相关环境准备

光有了证书还不行,您还需要搭建WEB服务器才能将证书放上去,上面已经提到LNMP一键包、AMH主机面板、OneinStack均使用的Nginx作为WEB服务器,安装其中之一即可。

三、部署SSL

最关键的步骤来了,首先您需要将步骤一中的SSL证书上传到服务器的某个目录,可以通过 winscp (可以在本站下载:WinSCP v5.11.1.7725 绿色便携 开源SCPSFTP客户端)上传,比如将.crt和.key文件上传到 /usr/local/nginx/conf/ssl/ 目录,找到主机配置文件(通常是在 /usr/local/nginx/conf/vhost/xxx.conf ),使用vi编辑器再server段内加入下面几行:

listen 443 ssl;
ssl_certificate /usr/local/nginx/conf/ssl/www_typecho_wiki.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www_typecho_wiki.key;

注:本步骤比较重要,请在修改之前备份该配置文件。

四、放行443端口

https(SSL)需要使用443端口,如果您的防火墙(iptables)没有放行443端口可能导致网站无法访问,请按照下面三个语句执行。

vi /etc/sysconfig/iptables   ##编辑配置文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT   ##(允许80端口通过防火墙)
/etc/init.d/iptables restart ##重启防火墙

五、重启nginx服务器

军哥的LNMP直接输入命令 lnmp nginx restart ,AMH输入命令 amh nginx restart,若配置错误可能导致nginx启动失败,所以在第三部修改主机配置文件前请先做好相关备份。

六、配置文件实例

下面这段代码是80端口(http)和443端口(https)共存实例,供参考。

server
{
listen 80;
listen 443 ssl;
server_name www.typecho.tips;
index index.html index.htm index.php;
root /home/wwwroot/www.typecho.tips/;
#ssl on; 这里要注释掉
ssl_certificate /usr/local/nginx/conf/ssl/www_typecho_wiki.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www_typecho_wiki.key;
#以下配置省略
}

另外相关文章:

Typecho 全站启用 HTTPS 教程

广告栏+++++++蜜糖商店|大哥云| 搬瓦工JMS|红莓网络| Mielink|萌喵加速| 飞鸟云

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注