前言

应朋友们的需求,来写一个如何在lnmp环境下给nginx配置SSL证书,并且实现全站https的教程。

准备

  1. 一份SSL证书文件。(******.crt和******.key这两个文件即可)
  2. 一台配置了lnmp的服务器。(虚拟主机不行哦)
  3. 一双爱动的手。

教程

第一步:

首先用SSH连接上服务器,然后找到nginx配置文件在哪。 因为我用的环境是使用的www.lnmp.org的脚本,所以地址为\[mark\]/usr/local/nginx/conf/vhost/\[/mark\] 所以我们在/usr/local/nginx/conf/新建一个文件夹,取名为ssl好了。 然后用sftp或者ftp工具连接上服务器,将之前准备好的SSL证书文件上传进去。

第二步:

用vim命令行编辑器打开配置文件。(我这里是直接拿我自己站点来写的,你们需要自己替换名字) ps:不会或者不想用vim的可以下载到本地然后在编辑,上传替换即可。

vi /usr/local/nginx/conf/vhost/oeone.cn.conf

然后显示的代码如下:

server
{
listen 80;
#listen [::]:80;
server_name oeone.cn ;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/oeone.cn/wordpress;

以下省略…

然后我们只需要按照以下这个方式去修改就行了(按i开始编辑):

server
{
listen 80;
listen 443 ssl;
#listen [::]:80;
ssl on;
ssl_certificate /usr/local/nginx/conf/ssl/1_oeone.cn_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/2_oeone.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
server_name oeone.cn ;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/oeone.cn/wordpress;

以下省略…

编辑完成之后保存退出(按ESC+:+wq保存退出)。 然后重启nginx即可实现https访问网站了,如果想要实现全站https,则需要做301重定向,并且将网站内所有连接都替换成https协议就可以了(ps:这部分网上教程一堆而且都挺好,我就不凑字数了,实在需要的可以留言,我有时间就写一下)。

结尾

1:因为我是凭记忆写的,可能存在一些纰漏,欢迎留言你们遇到的问题!。