技术饭
阿里云中如何实现http认证成https?
阿里云中如何实现http认证成https?今天看到阿里云有个免费的https证书认证,今天早上闲着无聊就搞了一下,刚刚开始搞了大半天一直报错,后续百度之后看到了许多解决方案,就综合乐一下。
第一步:阿里申请免费证书认证服务
去阿里云的证书服务去购买免费的服务,一年好像是。下面是阿里的申请,自行看,不再赘述。
第二步:配置服务器
这一点尤为关键,因为本人的服务器是nginx,所以呢,下面讲的都是nginx上的配置
1)、nginx 同一个IP上配置多个HTTPS主机
首先呢,因为一台服务器有很多的站点,那么如何将其中一个虚拟主机做成https形式呢?那就需要设置nginx的一些配置了,
1、查看是否开启了TLS SNI的支持,如果显示:TLS SNI support enabled 那么就跳过 1) 这个步骤、,如果显示:TLS SNI support disabled 的话,那么就需要去开启TLS SNI的支持了。/alidata/server/nginx这个是nginx安装目录
# /alidata/server/nginx/sbin/nginx -V
2、编译安装openssl
#获取并解压
wget http://www.openssl.org/source/openssl-0.9.8l.tar.gz --no-check-certificate
tar zxvf ./openssl-0.9.8l.tar.gz
cd ./openssl-0.9.8l
#配置安装
./config enable-tl***t
make
make install
3、重新编译nginx
#进入nginx的目录,如果没有nginx请自行wget,/alidata/server/nginx这个是nginx安装目录,../../openssl-0.9.8l这个是openssl的目录,路径一定要对
./configure --prefix=/alidata/server/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-openssl=../../openssl-0.9.8l
make
make install
4、重新查看:# /alidata/server/nginx/sbin/nginx -V,如果还没开启就说明没有配置正确,请自行查看
资料参考:
纯Nginx支持多域名ssl证书(TLS SNI support disabled)解决方案
2)、配置nginx的某个网站的conf
server {
listen 443;
server_name www.copylian.com copylian.com;
ssl on;
index index.html index.htm index.php;
root /alidata/www/svnweb/blog;
ssl_certificate /alidata/server/nginx/cert/214053061370499.pem;
ssl_certificate_key /alidata/server/nginx/cert/214053061370499.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;
}
}
#这底下这个是用来将http跳转到https的代码,比较重要
server {
server_name www.copylian.com copylian.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
参考资料: nginx 301跳转到带www域名方法(不带www访问时重定向到带www域名)
最后很重要的一点就是配置完成之后一定要重启nginx,不是reload重载。
是STOP & START 而不是RELOAD!
这样大体的配置就完成了。
参考资料:在NGINX上配置HTTPS---血的教训--要重启NGINX
文明上网理性发言!