近期搞了阿里云ecs服务器、域名、ssl、nginx配置、网站备案,在此记录一下遇到的坑。
1、域名解析配置
(1)域名绑定服务器
很简单,直接新手引导,添加服务器公网ip即可。完成后会出现 www 和 @
2、申请免费ssl
不介绍了。
把ssl 配置在域名上
配置完会多一条,如上图。
然后在ssl 点击下载。
ps:部署或者下载都行。一般是下载。
下载后会有pem和key 两个文件
3、nginx配置ssl,形成https
这里是Ubuntu ,nginx 1.14.0
把pem和key上传到目录下,这里传到了/etc/nginx/conf.d/cert
设置755权限
chmod -R 755 /etc/nginx/conf.d/cert
在/etc/nginx/conf.d中,
新建 *.conf文件
server {
listen 443 ssl;
server_name ***.cn; #这里只需要***.cn即可,不用写 www.***.cn
ssl_certificate /etc/nginx/conf.d/cert/*****.pem;
ssl_certificate_key /etc/nginx/conf.d/cert/*****.key;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
root /var/www/html; #前端项目的目录
index index.html; # 首页要识别哪个html
}
}
设置755权限
chmod -R 755 /var/www/html
记录下命令:
service nginx restart 重启
nginx -s reload 重新载入配置文件
service nginx status 查看启动状态
nginx -t 校验配置文件是否正确
下面摘抄下阿里云nginx的配置示例
#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。
root html;
index index.html index.htm;
ssl_certificate /etc/nginx/cert/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key /etc/nginx/cert-file-name.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#表示使用的加密套件的类型。
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm;
}
}
注意!!!!
这里我遇到坑了。第一次用阿里云的配置文件弄好后,重启nginx,访问https://www.**.cn 域名,能看到nginx欢迎页。
http://www.**.cn 域名,能看到nginx欢迎页。
然后过了一会儿,http://www.**.cn打不开了,说要求进行ICP备案。然后https://www.**.cn还是可以的,还是欢迎页。
但是隔了几天,(期间有其他人部署了一个另外的域名和ssl,是可以的。我想做双域名双ssl,因此又回来配置nginx)
再打开https://www.**.cn,就打不开了。以为是配置有问题,捣鼓了一天(认为为什么的别人域名和ssl可以,自己的不行?)。
curl -v https://www.***.cn/
openssl s_client -connect www.***.cn:443 -msg
期间学到了两个命令。不明所以,记录下来。
下面是一个抓包的命令
tcpdump host *.*.*.* port 443
请求https://www.**.cn竟然没有收到包
后来问了运维工程师,说https://www.**.cn 是被阿里云检测到了。被ban了。必须得先备案。
从网上找相关的资料,也没有搜到,在这里记录下这个坑!!!!!!!!
4、ICP备案
这里备案有个坑的地方就是:
企业的营业执照里面如果有写新闻类、出版类、药品和医疗器械类等的经营,是需要先获取到这些类的经营许可文件,才能进行备案的。如果有,可能需要更改营业执照经营范围。
另外:备案不需要有网站,因为备案审核需要关闭域名解析,你就算有网站也没什么用。
4.1、免备案思路
经过调查,中国大陆的主机才需要备案。
可以买一个海外的云主机,把阿里云域名挂到那个主机上,然后再那个主机上门配置网站,即可免备案。
网站备案和主机有关系,和域名没关系。
以上思路并未测试,仅供参考。