过程总述
- 购买服务器,购买域名,备案
- 申请ssl证书
- DNS验证
- 上传证书,配置nginx
- 很关键,打开端口!!!阿里云的443端口默认是不打开的
1.准备工作:注册账号,购买服务器,域名,备案
你需要首先注册一个阿里云账号,点击:注册阿里云账号
编辑
输入相关信息后,代表注册成功。
然后点击:个人中心,在个人中心去做一下实名。
编辑
选择企业实名或者个人实名,这里注意,如果是企业行为一定要选择企业实名,而不是个人实名
服务器我是买的阿里云的,域名也是在阿里云上买的,注意一点,现在域名必须备案才能用,所以建议先买域名着手备案,等备好案再买服务器。
如果是个人开发使用,服务器不用买太贵的,1M网速2G内存的就够用了。
域名如果不是商用,也不用太好,我就用的.top,cn和com基本没多少好听的域名了。而且还很贵。
2.申请ssl证书
申请Let's Encrypt的ssl证书
编辑
比如我们现在要给example.top申请证书
- 注册个帐号,不注册也行,但是注册了之后,以后证书如果不小心删了,这里还可以在下载。邮箱注册,打开邮件验证,然后回到首页。
- 在首页输入你要的输入的域名,如果你要只用二级域名比如www.example.top,就输这个二级域名就行,或者你要全域名,就输入*.example.top,这样以后所有二级域名就都可以用https服务了。我们这里使用全域名。
- 点击创建,确认。然后会给一个私钥的压缩包,留下来,先不用。然后界面上进入DNS验证的过程。
3. DNS验证
- 首先说说这个东西是干嘛的,我理解的,就是给你发的时候,我得确认你有这个网站的权限,然后能让我认可,我才给你发证,表示我承认这个证保护这个网站。
- 先不要点击验证,如果失败会有十分钟的间隔之后才能再验证,点击
配置完成,检测一下
进入检测界面。检测界面这样,但是数据不全,先不用点,还要用刚才那个界面的数据。 - 打开你的阿里云网站,进入控制台->域名->点击你的域名->然后域名解析。到这个界面就对了。
- 添加dns验证要的信息。点击添加记录,在最开始的freessl的那个页面,就是查询验证之前的那个界面。
- 一共有两个,新建两个记录,对应关系一样,如图。
- 测试一下,应该通过,然后回到freessl那里,点击
点击验证
,通过之后会发给你一个压缩包,里边就是证书啦。
4. 上传证书,配置nginx
- 刚才获得的最后的证书在那个压缩包里,解压是这样的内容,如果丢了,可以去网站再下载一下(如果刚才没有注册登陆,就只能再重新申请一遍)。
- scp复制到服务器上,或者搭建了ftp服务也可以。(不会的自行百度啦,scp还是很简单的)。比如我的吧
scp private.key root@112.125.88.123:/root/
,然后要求输入密码,文件就过去了。把两个文件都传过去。 - 进入服务器。把刚才的两个文件复制到nginx下新建的一个目录下,我的放在
/usr/local/nginx/cert/
下了。 - 贴上我的nginx配置文件。
server { listen 443; ssl on; ssl_certificate /usr/local/nginx/cert/full_chain.pem; ssl_certificate_key /usr/local/nginx/cert/private.key; keepalive_timeout 70; server_name example.top; root /data/webroot/example; charset utf-8; 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; fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; location / { index index.php index.html index.htm; if (-e $request_filename) { break; } if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } } location ~ .+\.php($|/) { fastcgi_split_path_info ^(.+\.php)(/.+)$; # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } access_log logs/calendar.yimeidan.access.log; error_log logs/calendar.yimeidan.error.log; } server { listen 80; server_name calendar.yimeidan.top; return 301 https://$server_name$request_uri; }
5. 一定要记得打开端口!!!
最后的最后,很关键,打开端口!!!打开端口!!!打开端口!!!
阿里云的443端口默认是不打开的,需要如下操作打开端口。(80端口也是需要这么打开的。)
点开你的阿里云控制台,找到你要用的服务器,然后点更多->网络和安全组->安全组配置。
点配置规则,添加安全组规则。添加内容如图。你也可以这样配好80端口。
尾声
理论上完活啦,有问题可以留言交流。