还记得当初为了让博客支持SSL,可是找了很多资料啊,有时候一篇资料写的不够仔细就又要重新找,经过反复的摸索,以及查找资料,最后还是把SSL搭建好了。记录操作过程以待备用。
搭建SSL最主要的还是证书,没有证书肯定是不能弄起来的,很早接触的证书是沃通,当时别人介绍他提供免费证书,对于普通站点来说是可以的。但是后来苦于沃通证书申请麻烦之至,时间也很慢,无奈弃之,最后转辗反侧知道了 Startssl 这个证书,当时知道这个是在手机上,电脑并不在身边,用手机完成了账号注册,然并不知道这个网站登录是需要证书登录。最后放之。
当时搭建SSL是想着把该有的东西都弄齐,最后购买云服务器(当时使用的虚拟机),希望一举成功。沉默的半个月终于决定搞SSL。在阿里购买的云服务器,当时又是一阵懵逼,不会搭建环境,花了两个小时时间找了资料,选择的方案是Lnmp(Linux,nginx,mysql,php),试着安装几次后,失败了。又懵了,再找了找相关的资料,试了几下,失败。最后打算就这样了。
逛了几个小时的博客及网站,意外发现了一键安装包(军哥lnmp一键安装包)。但是奔着死马当活马医的,不曾想,环境装好了。嗯,添加虚拟空间绑定域名,访问没有问题,把网站文件迁了过去。最后搞起SSL。在 Startssl 获取个人证书后,导入浏览器,重启浏览器.....省略五百字
修改nginx配置文件。
server { listen 80 default_server; server_name aimuz.me; #改为自己域名,由http跳转为https return 301 https://aimuz.me$request_uri; } server { listen 443 ssl; #listen [::]:443 ssl; server_name aimuz.me; ssl_certificate /usr/local/nginx/conf/vhost/ssl/me.crt; # 证书路径 ssl_certificate_key /usr/local/nginx/conf/vhost/ssl/yourname.key; # 证书密钥文件,申请时输入的 ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits # ssl_dhparam /usr/local/nginx/conf/vhost/ssl/dhparam.pem; # intermediate configuration. tweak to your needs. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; # 启用HSTS ..... }
opensll 生成 key文件
openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr
申请证书的时候复制 yourname.csr 文件内容即可。
nginx 参数说明 ssl_certificate 证书文件路径,包含文件名如: ssl_certificate /usr/local/nginx/conf/vhost/ssl/me.crt; ssl_certificate_key 证书密钥路径,包含文件名如: ssl_certificate_key /usr/local/nginx/conf/vhost/ssl/yourname.key; ssl_dhparam dhparam文件 可不需要 ssl_dhparam /usr/local/nginx/conf/vhost/ssl/dhparam.pem;
利用OpenSSL生成dhparam 文件
openssl dhparam -out dhparam.pem 2048
好像就这样了,完了
https://mozilla.github.io/server-side-tls/ssl-config-generator/