阿里云创建ssl证书,https访问
-
阿里云每个域名都有一个免费默认签发有效时长为1年,用于个人及测试的ssl证书,要申请。
-
申请成功后,下载证书。证书内有两个文件:.key和.pem,上传到你的linux服务器。
-
根据使用的web服务器,配置ssl。阿里云证书下载页面有配置教程。以下为nginx:
( 1 ) 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为1529170946016.key;
( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:
# HTTPS server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}
( 3 ) 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/1529170946016.pem;
ssl_certificate_key cert/1529170946016.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 html;
index index.html index.htm;
}
}
保存退出。
( 4 )重启 Nginx。
- 在阿里云服务器实例-安全组规则中配置443端口。linux服务器如果有开启防火墙,开启443端口访问权限。
- 问题:nginx报错 the "ssl" parameter requires ngx_http_ssl_module
原因:安装nginx的时候没有安装http_ssl_module模块
解决方法:
1. 查看是否安装http_ssl_module模块
/usr/local/nginx/sbin/nginx -V
2. 生成新的Makefile文件:
./configure --prefix=/usr/local/nginx --with-http_ssl_module
3. 编译文件:
make
这里不要进行make install,否则就是覆盖安装
4. 然后备份原有已安装好的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
5. 然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
6. 然后启动nginx,仍可以通过命令查看是否已经加入成功
/usr/local/nginx/sbin/nginx -V
configure arguments:后面显示
--prefix=/usr/local/nginx --with-http_stub_status_module