• 售前

  • 售后

热门帖子
入门百科

Nginx服务器https设置的方法示例

[复制链接]
笑到呆萌 显示全部楼层 发表于 2021-10-25 18:38:04 |阅读模式 打印 上一主题 下一主题

Linux:Linux version 3.10.0-123.9.3.el7.x86_64
Nginx:nginx/1.6.3
openssl:1.0.1e
申请证书

目前网上有不少机构提供个人免费 ssl 证书,有效期几个月到几年不等。以 StartSSL :https://www.startssl.com 为例, 申请乐成后有效期 3 年,到期后可免费续租。
具体申请过程也很简朴。
注册登录以后选择 Certificates Wizard >> DV SSL Certificate 申请一个免费的 ssl 证书。
通过邮件验证域名之后,然后在自己服务器中生成 SSL 证书的 csr , 记着生成输入的机密 ,之后要用到:
  1. openssl req -newkey rsa:2048 -keyout weizhimiao.cn.key -out weizhimiao.cn.csr
复制代码
将生成的证书,放到指定的存放证书的目次,如
  1. /data/secret/
复制代码
。查察证书
  1. weizhimiao.csr
复制代码
内容,将内容复制到页面中的 Certificate Signing Request (CSR)部门,提交页面。
下载生成好的证书,选择对应的web服务器(Nginx,1_weizhimiao.cn_bundle.crt),如许私钥和公钥我们就都有了。
      
  • 1_weizhimiao.cn_bundle.crt(公钥)  
  • weizhimiao.cn.key(私钥)
nginx设置(为指定域名增加https)
nginx.conf当前设置
  1. ...
  2. http {
  3. ...
  4. include /etc/nginx/conf.d/*.conf;
  5. server {
  6.   ...
  7. }
  8. }
复制代码
./conf.d/weizhimiao.cn.conf中加入
  1. server{
  2. listen 443 ssl;
  3. server_name weizhimiao.cn;
  4. ssl_certificate /data/secret/1_weizhimiao.cn_bundle.crt;
  5. ssl_certificate_key /data/secret/weizhimiao.cn.key;
  6. ssl_prefer_server_ciphers on;
  7. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  8. ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !RC4 !SEED';
  9. add_header Strict-Transport-Security 'max-age=31536000; preload';
  10. add_header X-Frame-Options DENY;
  11. ssl_session_cache shared:SSL:10m;
  12. ssl_session_timeout 10m;
  13. keepalive_timeout 70;
  14. ssl_dhparam /data/secret/dhparam.pem;
  15. add_header X-Content-Type-Options nosniff;
  16. add_header X-Xss-Protection 1;
  17. root /data/www/weizhimiao.cn;
  18. index index.html;
  19. location / {
  20. }
  21. }
复制代码
注:
设置中用到一个
  1. /data/secret/dhparam.pem
复制代码
文件,该文件是一个PEM格式的密钥文件,用于TLS会话中。用来增强ssl的安全性。生成该文件方法,
  1. cd /data/secret/
  2. openssl dhparam 2048 -out dhparam.pem
复制代码
将原来80端口的访问,重定向。./conf.d/weizhimiao.cn.conf中加入
  1. server{
  2. listen 80;
  3. server_name weizhimiao.cn;
  4. return 301 https://weizhimiao.cn$request_uri;
  5. }
复制代码
测试
检测设置文件是否有语法错误,需要输入之前生成公钥时输入的暗码。
  1. nginx -t
  2. Enter PEM pass phrase:
  3. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  4. nginx: configuration file /etc/nginx/nginx.conf test is successful
复制代码
重启Nginx(牢记,reload不起作用)
  1. nginx -s stop
  2. Enter PEM pass phrase:
  3. nginx
  4. Enter PEM pass phrase:
复制代码
欣赏器访问 weizhimiao.cn ,是否见效。
另,Nginx设置了安全证书之后,nginx每次的reload、stop等操作都需要输入暗码。
可以通过生成一个解密的key文件,替换原来key文件。
  1. cd /data/secret/
  2. openssl rsa -in weizhimiao.cn.key -out weizhimiao.cn.key.unsecure
复制代码
替换
  1. weizhimiao.cn.conf
复制代码
中的
  1. weizhimiao.cn.key
复制代码
文件.
  1. server {
  2. ...
  3. ssl_certificate /data/secret/1_weizhimiao.cn_bundle.crt;
  4. ssl_certificate_key /data/secret/weizhimiao.cn.key.unsecure;
  5. ...
  6. }
复制代码
之后每次在reload时,就不需要在输入暗码了。
末了,用 SSLLABS 来举行一下测试。

结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持草根技能分享。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作