Nginx 配置https


本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。

声明:
本博客欢迎转发,但请注明出处,保留原作者信息
博客地址:孟阿龙的博客
所有内容为本人学习、研究、总结。如有雷同,实属荣幸


Https简介

简单的理解,在http的基础上增加一层 SSL加密的过程,就实现了https。服务端和客户端传输信息的时候都会通过TLS进行加密。基本的原理如下:

  1. 客户端与服务端建立连接,生成各自的私钥和公钥
  2. 服务端返回给客户端一个公钥
  3. 客户端拿着这个公钥把需要传输给服务端的数据进行加密,形成密文,连同自己的公钥一起返回给服务器
  4. 服务器拿自己的私钥对密文解密之后,将响应数据用客户端的公钥加密,返回到客户端
  5. 客户端拿着自己的私钥解密,将数据呈现出来

搞清楚上边的原理之后,一个http服务要实现https,最关键的环节就是生成自己的证书+私钥。证书的来源基本有如下几种途径:

  1. 自己在服务器上生成。如果是自己做测试使用,推荐这种,简单方便
  2. 在CA证书机构申请免费的证书(目前阿里云、百度云都有提供)。如果服务不是很重要或者主要用来测试,那么也可以用
  3. 在CA证书机构申请付费证书。商用推荐方案

接下来就以第1中方式来记录一下https的服务配置

自己生成免费证书

我用的是nginx,因此在nginx的conf目录下创建ssl目录,之后进入ssl目录生成证书

  1. 生成秘钥key
openssl genrsa -des3 -out server.key 2048

过程中需要输入密码,两次输入一致,记住即可,结束之后生成 server.key文件,后续使用该文件生成其他配置的时候都需要输入这里的密码。如果不想后续输入密码,则执行(建议执行,因为如果不做这一步,后续配置了nginx之后,nginx服务启动的时候都需要让你输入密码):

openssl rsa -in server.key -out server.key
  1. 生成服务器证书的申请文件server.csr
openssl req -new -key server.key -out server.csr

输出的内容如下:

Enter pass phrase for root.key:  输入前面创建的密码 
Country Name (2 letter code) [AU]:CN  国家代号,中国CN 
State or Province Name (full name) [Some-State]:shannxi 省的全名 
Locality Name (eg, city) []:xi'an 市的全名,拼音 
Organization Name (eg, company) [Internet Widgits Pty Ltd]: xxxx 公司名称 
Organizational Unit Name (eg, section) []: 可以不输入,直接回车
Common Name (eg, YOUR name) []: 可以不输入,也可以输入你的域名
Email Address []:admin@mycompany.com 邮箱地址
Please enter the following ‘extra’ attributes 
to be sent with your certificate request 
A challenge password []: 可以不输入,直接回车
An optional company name []: 可以不输入,直接回车
  1. 生成CA证书:
openssl req -new -x509 -key server.key -out ca.crt -days 3650
  1. 生成一个有效期为10年的服务器证书,server.crt
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

完成后,在ssl目录下生成的server.crt和server.key就是我们nginx需要的证书

配置Nginx(1)

nginx需要支持https,依赖于nginx编译时打开了ssl编译选项。这一步继续配置之前,可以通过命令查看当前nginx是否支持ssl,执行nginx -V 可以查看--with-http_ssl_module 包含了这个选项

./nginx -V
nginx version: nginx/1.12.1
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/home/work/lnmp/nginx --http-client-body-temp-path=/home/work/lnmp/nginx/tmp/client_body --http-proxy-temp-path=/home/work/lnmp/nginx/tmp/proxy --http-fastcgi-temp-path=/home/work/lnmp/nginx/tmp/fastcgi --http-uwsgi-temp-path=/home/work/lnmp/nginx/tmp/uwsgi --lock-path=/home/work/lnmp/nginx/var/lock/ --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre

配置Nginx(2):

image.png

如上图红框中的内容,我当前的nginx启动的3389端口对应http请求,启动443端口对应https请求。
修改完配置文件重启nginx服务生效即可。
之后就可以通过https://your.domain.name/xxx 来访问你的服务了

注意:

我测试用的是阿里云上的ecs服务器,在阿里云,默认服务器是不开放443端口的,因此需要去你的阿里云对应实例的安全组上,放开 443端口


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • 浏览器地址栏标志着 HTTPS 的绿色小锁头从心理层面上可以给用户专业安全的心理暗示,本文简单总结一下如何在 Ng...
    QieZi阅读 37,951评论 0 10
  • 编译自:[configuring_https_servers][1][1]: http://nginx.org/e...
    C86guli阅读 2,666评论 2 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • 在如今越来越强调隐私与数据安全的情况下,我们的资源访问当然也要尽可能的安全,我们知道 HTTP 协议是明文传输的,...
    雨林_a1d6阅读 1,490评论 0 7
  • 说明 以前总觉得搭建一个https服务器好难好难,亲手操作之后,其实并不难,因为现在可以从 letsencrypt...
    凉风儿阅读 939评论 0 2