网站做好已经几个月了。因为没有配置SSL证书,一直以来地址栏都提示网站不安全。昨晚想着没什么事,准备还是申请个ssl证书配置一下。结果折腾了一晚上还各种出错。
这个整体的思路就是。申请证书,首先,你提交申请,然后它要验证你域名的所有权,验证的方式分两种
- DNS解析记录
- 在服务器的特定路径放置一个特定的文件
而这两种验证方式中,第一种要在域名提供商那里新建DNS解析记录,而这个生效时间可能要十几分钟甚至更久,在我看来是不太推荐的;第二种方式,很简单,指定位置放置指定文件就行,没有的路径就新建,要注意的是 .xxx 默认是隐藏的。
然后给你生成两个文件,一个证书,一个密钥。然后就是服务器端,告诉服务器开启ssl、证书在哪、密钥在哪以及当http请求的时候改成https。就这些。
记录一下成功的配置方法
- 访问 https://freessl.cn/
- 选择品牌
- 输入域名(如:zhoushiqi.com)
- 点击“创建免费的SSL证书”
- 输入自己的邮箱
- 验证类型选择文件验证
- 点击创建
- 提示下载 KeyManager
- 下载 配置好
- 继续
- 按要求下载文件 上传至服务器指定路径
- 点击验证
- 验证完 打开 KeyManager
- 全部证书-操作-导出证书-选择服务器平台-导出
- 解压导出的文件得到 zhoushiqi.com_chain.crt 和 zhoushiqi.com_key.key 两个文件
- 上传至服务器 (路径随自己喜好,但是要记得在哪)
- 转至路径/usr/local/nginx/conf/vhost
- 打开zhoushiqi.com.conf 添加如下代码
server
{ # 监听 ssl 443 端口
listen 443 ssl;
server_name zhoushiqi.com;
# 开启 ssl
# ssl on;
# 指定 ssl 证书路径
ssl_certificate /home/wwwroot/zhoushiqi.com_chain.crt;
# 指定私钥文件路径
ssl_certificate_key /home/wwwroot/zhoushiqi.com_key.key;
if ($server_port = 80 ) {
return 301 https://$host$request_uri;
}
listen 80;
#listen [::]:80;
server_name zhoushiqi.com zhoushiqi.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/zhoushiqi.com;
include rewrite/none.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php-pathinfo.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log off;
}