这篇是直接复制 https://www.xiaoweigod.com/webserver/904.html 的
p 443` 发现是softether占用了443端口,停用softether。现在突然想起了就记录一下。还有阿里云的免费证书申请也有个坑,就像游戏秘籍一下,看半天没有找到免费的,好像是要点到公司里面然后再选免费的才会显示,证书到期可以提前购买,好像也是免费的。
1 | nginx 服务器重启命令,关闭 |
第二步,配置SSL证书到服务器。
在上一步我们下载了自己的证书,解压得到两个文件,一个是pem证书文件,一个是key秘钥文件。
为了规范起见,把这两个文件命名为你的网址(不能用中文字符),比如我把两个文件分别命名为xiaoweigod.com.pem和xiaoweigod.com.key,然后打开winscp,连接自己的服务器,把这两个文件上传到 /etc/ssl/certs目录中,如果没有这个目录,自己新建一个。
提示:由于https连接需要服务器开启443端口,博主用的是阿里云,默认安全策略关闭了443端口,需要开启服务器的443端口才能正常访问,需要去控制台添加安全组规则,将443端口开放。其他主机提供商也类似,如果是系统自带iptable防火墙,请设置允许443端口开放。
第三步,配置Nginx支持SSL。
如果你的Nginx只挂了一个网站,没有用vhost,那么配置文件是 /usr/local/nginx/conf/nginx.conf,如果你的Nginx挂了多个网站或者启用了vhost,那么配置文件是 /usr/local/nginx/conf/vhost/你的域名.conf
打开配置文件。在 server{ } 中加入以下内容:
1 | listen 443; |
以下为代码解释,方便排查问题。
1 | listen 443; 服务器监听443端口(常规SSL端口) |
配置完成后,打开xshell连上服务器,执行
1 | service nginx restart |
重启nginx 服务。
重启过程中如果出现如下等错误,请根据提示检查刚才更改的Nginx配置文件有没有语法错误。这里很详细的提示了具体哪个文件哪一行有错误。
1 | Stoping nginx... nginx: [emerg] unknown directive in /usr/local/nginx/conf/vhost/www.xiaoweigod.com.conf:6 |
做完这些步骤,在浏览器中清空缓存,访问 https://你的域名 应该就可以看到效果了,SSL加密完成。
特别注意,如果引入了http(非加密)外链,会使页面出现安全警告,所以请保证页面上所有的外链资源都是https开头或者是本地服务器资源。