记录一次阿里云ssl证书配置,并且重新搭了nginx。
域名和服务器早已经买好了,只是用的http。
1. 访问SSL控制台
立即购买,右面会跳购买页面,我用的单域名免费的,需要对每个子域名签发。
然后
证书总数20,待申请20,已签发0
点击待申请,填子域名信息确认,然后等一分钟就会自动审核通过。
我这里签了两个子域名。
2. 下载对应环境的证书
点列表里下载按钮
我这里用独立的nginx,压缩包里是.key和.pem
我放到了nginx的根目录里,新建了ssl目录
3. 配置nginx
v1.8.0
这个不详细写了,新安装去看详细nginx教程,只说几个问题
首先我是替换,新装的就不用看这个问题了,保证configer里有–with-http_ssl_module就可以了。
启动报:
nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:
没有ngx_http_ssl_module模块,这是在nginx编译时就要配置的,只能重新下个源码包。
去源码包下,先查一下已经安装的nginx的配置:
/usr/local/nginx/sbin/nginx -V
输出
–prefix=/usr/local/nginx --with-http_stub_status_module
重新编译把这些加上,再加–with-http_ssl_module
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
然后把生成的可执行文件替换到原来的目录里
cp ./objs/nginx /usr/local/nginx/sbin/
其中又遇到没有openssl,装一下
yum -y install openssl openssl-devel
4.关于SSL的ng配置
阿里文档:
#以下属性中,以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 cert/cert-file-name.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cert/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 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm;
}
}
我这里是配了两个域名,www是前端文件(根目录),api是后端接口(反向代理),所以配了两个server
server {
listen 443 ssl;
server_name api.aaa;
ssl_certificate ../ssl/api.aaa.pem;
ssl_certificate_key ../ssl/api.aaa.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 / {
proxy_pass http://127.0.0.1:1234/;
}
}
server {
listen 443 ssl;
server_name www.aaa;
ssl_certificate ../ssl/www.aaa.pem;
ssl_certificate_key ../ssl/www.aaa.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 / {
root /data/www;
}
}