最近几天捣鼓了下个人网站,想着给自己的网站也整个https,所以就有了这篇文章,以下是我的阿里云服务器Nginx下安装阿里免费证书的一些操作:
1、购买免费证书
2、
Centos8 上安装Nginx
3、Nginx上配置ssl
(1)、登录阿里云控制台,搜索SSL,找到SSL证书(应用安全),注意阿里控制台可能样式上会有些改动,但基本的一些功能大致没怎么变化。
(2)、进入SSL证书(应用安全),点击购买证书,选择单个域名,接着的步骤如下图所示:
(3)、购买成功后可在控制台看到,如下,接着我们点击待申请下拉框,点击立即申请,填写相关信息后,大概一分钟左右就可以看到状态变为已签发。接着点击下载选择Nginx下的下载选项(因为本文是以Nginx为示例)
接下来就是Nginx的安装,准备好了吗?
2、Centos8下安装Nginx
(1)首先安装必要的库(编译需要的gcc、nginx 中gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库)
安装gcc
gcc是Linux下的编译器,它可以编译
C,C++,Ada,Object C和Java等语言。
安装命令:yum
-y
install gcc
安装zlib
zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip
安装命令:
yum install -y zlib zlib-devel
安装pcre 库
pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。
安装命令:
yum install -y pcre pcre-devel
安装openssl
openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔
安装命令:
yum install -y openssl openssl-devel
(2)安装Nginx
下载Nginx安装包:
wget http://nginx.org/download/nginx-1.17.6.tar.gz
解压:
tar -zxvf nginx-1.17.6.tar.gz
进入到解压的目录中:
cd nginx-1.17.6/
执行安装一般就这三步骤:1、./configure 2、make 3、make install
在这里我执行的是以下命令:(其中的--prefix=/usr/local/nginx 是将nginx的安装目录设置为/usr/local/nginx)
./configure > --prefix=/usr/local/nginx > --pid-path=/var/run/nginx/nginx.pid > --lock-path=/var/lock/nginx.lock > --error-log-path=/var/log/nginx/error.log > --http-log-path=/var/log/nginx/access.log > --with-http_gzip_static_module > --http-client-body-temp-path=/var/temp/nginx/client > --http-proxy-temp-path=/var/temp/nginx/proxy > --http-fastcgi-temp-path=/var/temp/nginx/fastcgi > --http-uwsgi-temp-path=/var/temp/nginx/uwsgi > --http-scgi-temp-path=/var/temp/nginx/scgi \--with-http_stub_status_module \--with-http_ssl_module \--with-file-aio \--with-http_realip_module
make
make install
接下来启动 nginx 服务:
进入到安装目录下的sbin:cd /usr/local/nginx/sbin
启动:./nginx
用以下命令查看服务是否启动成功:
ps -ef | grep nginx
如下所示则表示启动成功
注:有时候你可能会遇到nginx命令不存在的提示。
则需要去配置环境:vim /etc/profile
在下面中添加:PATH=$PATH:/usr/local/nginx/sbin (不难理解,就相当于windows下添加path环境变量一样)
接下来在你的电脑上访问服务器ip地址,出现Nginx欢迎页面则表示成功访问
3、Nginx配置https证书
还记得第一步中下载的证书吗,这里我将它们上传至conf中的ssl目录下
a、首先我们在nginx的安装目录下的/usr/local/nginx/conf下创建ssl目录(mkdir ssl)
b、用ftp将证书文件上传至到ssl下
c、备份nginx.conf (命令:cp nginx.conf nginx.conf.cp)
d、编辑nginx文件,这里的nginx配置文件我是分为了多个,所以我在conf目录下又新建了vhost目录
然后在vhost目录下创建了 fahsa.cn.conf文件,步骤如下:
mkdir vhost
cd vhost
touch fahsa.cn.conf #创建文件
e、fahsa.cn.conf中的内容如下:
这里需要注意下空格问题
server {
listen 443 ssl;
server_name fahsa.cn;
ssl_certificate /usr/local/nginx/conf/ssl/4955350_www.fahsa.cn.pem;
ssl_certificate_key /usr/local/nginx/conf/ssl/4955350_www.fahsa.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;
location / {
root /data/www/blog/public; #此处不要忘记替换成你的网站目录
index index.html index.htm;
}
}
f、接下来修改nginx.conf文件,有几处是需要修改的:
添加重定向:return 301 https://$host$request_uri;
文件倒数第一个大括号前添加包含文件:include /usr/local/nginx/conf/vhost/*.conf;
示例如下:
好了,接下来访问网站此处看到一个小锁,说明证书安装成功了。
总结:首先你得知道总体的步骤是怎么样的,一步步下来也许你会遇到各种各样的问题,就比我这边因为是升级到了Centos8,之前安装的nginx是1.4版本的,配置ssl时出现了各种各样的问题,换成1.7版本后问题才得以解决,此处就不记录了。
凡事都抵不过用心。