一,环境阐明
服务器体系:centos7
域名:bjubi.com
简略进程流程: 具有一台服务器(省掉)》恳求注册域名(省掉)》恳求免费ssl安全证书》Centos装置Nginx》Nginx装备ssl》网站https拜访成功
二,域名解析到服务器
在阿里云控制台-产品与服务-云解析DNS-找到需求解析的域名点“解析”,进入解析页面后挑选【添加解析】按钮会弹出如下页面:
主机记载这儿挑选@,记载值便是服务器ip地址,承认。
三,恳求ca证书
在阿里云控制台-产品与服务-安全(云盾)-CA证书服务(数据安全),点击购买证书。(阿里云SSL免费证书恳求地址)
挑选“免费版DV SSL”,点击当即购买:
然后点去付出:
最终承认付出:
就会回到办理界面:
点击“补全”,输入要解析的域名,点下一步:
阐明:因为咱们这儿恳求的是开发版免费证书,所以一个证书仅支撑一个域名认证,不支撑通配符。
四,下载证书
列表中找到已签发的证书,下载:
进入下载页面,找到ngin页签中nginx装备信息,并“下载证书 for Nginx”:
记载以下内容,为了一瞬间装备nginx用:
下载的文件有两个:
1,214292799730473.pem
2,214292799730473.key
五,服务器装置,装备nginx
这儿装置
留意:这儿装置Nginx的进程省掉了,假如需求具体的装置Nginx教程,能够参阅:Nginx系列教程(1)Nginx根本介绍和装置入门
登录到服务器:
$ apt-get update // 更新软件
$ apt-get install nginx // 装置nginx
六,装备ca证书
1,nginx的装置目录为:/etc/nginx/。进入目录,添加cert/文件夹,把刚刚下载的两个文件上传到cert/文件夹中。
2,在/etc/nginx/sites-enabled/下,添加bjubi.com文件。内容如下:
阐明:下面的装备是对443端口和80端口进行监听,443端口要启用ssl。监听443端口的server装备能够模仿上面ca认证页面的nginx装备示例进行装备。
root节点笔者创建了一个bjubi.com/的文件夹,专门寄存来自这个域名的恳求以示区别。
bjubi.com/文件夹下添加一个index.html文件,里边只是写了一行 welcome。
server {
listen 443;
server_name bjubi.com; // 你的域名
ssl on;
root /var/www/bjubi.com; // 前台文件寄存文件夹,可改成其他
index index.html index.htm;// 上面装备的文件夹里边的index.html
ssl_certificate cert/214292799730473.pem;// 改成你的证书的姓名
ssl_certificate_key cert/214292799730473.key;// 你的证书的姓名
ssl_session_timeout 5m;
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 / {
index index.html index.htm;
}
}
server {
listen 80;
server_name bjubi.com;// 你的域名
rewrite ^(.*)$ https://bjubi.com:443/$1 permanent;// 把http的域名恳求转成https
}
装备完成后,检查一下nginx装备文件是否可用,有successful表明可用。
$ nginx -t // 检查nginx装备文件
装备正确后,从头加载装备文件使装备收效:
nginx -s reload // 使装备收效
至此,nginx的https拜访就完成了,而且经过rewrite方法把一切http恳求也转成了https恳求,愈加安全。
如需重启nginx,用以下指令:
$ service nginx stop // 中止
$ service nginx start // 发动
$ service nginx restart // 重启
七,拜访作用
输入http:bjubi.com也会主动跳转至https页面。
阐明:假如是云服务器比方阿里云ECS,需求到阿里云ECS的办理后台的安全组,修正端口过滤规矩把80端口和443端口敞开才干拜访到。
短少ssl_module模块
CentOS下装备Nginx的https时报错:短少ngx_http_ssl_module
1.首要,找到Nginx装置包的方位。比方,我的是:/usr/local/sr
c/nginx-1.15.1
cd /usr/local/src/nginx-1.15.1
假如忘掉装置包放哪里了,能够find指令找一下。
假如仍是找不到(比方删除了)。能够检查当时Nginx的版别号,从头下载一个。
【检查Nginx版别指令】
/usr/local/nginx/sbin/nginx -V (/usr/local/nginx/是你Nginx服务器的实践方位)
2.生成新的Nginx装备。履行
/usr/local/nginx/sbin/nginx -V
检查configure arguments:后边有没有值,假如有,就仿制下来。
然后履行
./configure --本来有的模块(假如有的话) --with-http_ssl_module
make
3.封闭现在运转的Nginx服务器。
/usr/local/nginx/sbin/nginx -s stop
因为我的装备文件报错,短少
nginx: emerg the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:121
所以无法封闭。所以,我测验把新的正确的nginx.conf替换出问题的nginx.conf。
再次履行封闭,成功。
4.OK,履行最终的进程。把编译好的nginx掩盖掉原有的nginx。
cp ./objs/nginx /usr/local/nginx/sbin/
体系会提示是否掩盖,输入y。
我运转时,体系提示Text file busy,履行失利。
不要紧!
ps -A
找到一切Nginx的进程。
Kill 1234
再次履行
cp ./objs/nginx /usr/local/nginx/sbin/
没有报错。把正确的nginx.conf文件夹上传。
发动nginx。
./nginx -c /usr/local/nginx/conf/nginx.conf
运转成功!!
往期文章
Nginx系列教程(1)nginx根本介绍和装置入门
Nginx系列教程(2)nginx建立静态资源web服务器
Nginx系列教程(3)nginx缓存服务器上的静态文件
Nginx系列教程(4)nginx处理web使用负载均衡问题以确保高并发
Nginx系列教程(5)怎么保证nginx的高可用性(keepalived)
Nginx系列教程(6)nginx location 匹配规矩具体阐明
Nginx系列教程(7)nginx rewrite装备规矩具体阐明
发表评论