黑帽联盟

 找回密码
 会员注册
查看: 1334|回复: 0
打印 上一主题 下一主题

[资源教程] Nginx配置自签名ssl

[复制链接]

132

主题

11

听众

295

积分

版主

Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    擦汗
    2018-6-12 09:41
  • 签到天数: 273 天

    [LV.8]以坛为家I

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。

    实验环境:ubuntu14.04(阿里云服务器)

    首先安装Nginx:apt-get install nginx-full(如果没有的话,使用命令apt-cache search nginx 自己找安装包,这个靠感觉吧,或者去nginx的官网下载源码包安装)

    第二,了解几个命令的不同

    1、service nginx -s reload(这个命令是不能使用的,etc下的nginx脚本没有编写这个参数把)

    2、service nginx reload(可以使用,正常的命令嘛)

    3、service nginx -t(这个命令是检查配置文件的正确性,不能使用)

    4、/usr/sbin/nginx -s reload(可以使用,推荐使用这个命令,原因在-s参数)

    5、/usr/sbin/nginx  -t(可以使用,默认检查/etc/nginx/nginx.conf配置文件的正确性)

    PS:参数间使用空格隔开



    第三、生成证书
    1. 1.创建网站证书存放目录  
    2. shell> cd /opt  
    3. shell> mkdir ssl;  
    4. shell>cd ssl  
    5.   
    6. 2.制作CA证书  
    7. shell> openssl genrsa -des3 -out ca.key 2048  
    8. shell> openssl req -new -x509 -days 7305 -key ca.key -out ca.crt  
    9.   
    10. 3.生成nginx服务器所需证书,并用CA签名  
    11. shell> openssl genrsa -des3 -out client.key 1024  
    12. shell> openssl req -new -key client.key -out client.csr  
    13. shell> openssl x509 -req -in client.csr -out client.pem -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650  
    14.   
    15.   
    16. 4.查看证书文件  
    17. shell> pwd  
    18. /usr/local/nginx/conf/ssl  
    19. shell> ls  
    20. ca.crt  ca.key  ca.srl  client.csr  client.key  client.pem  
    复制代码
    PS:生成证书的时候会提示输入密码,这个密码要记住,后面会用到。而且你生成其他文件(其他证书相关的)的时候也会用到

    第四、修改配置文件

    进入/etc/nginx/sites-available文件下,使用命令nano deafult编辑server配置文件,追加如下代码(这个就在最外层,不用嵌套在什么里面)
    1. server{  
    2.     listen 443;  
    3.     server_name www.xxhui.space;  
    4.     ssl on;  
    5.     ssl_certificate /opt/ssl/client.pem;  
    6.     ssl_certificate_key /opt/ssl/client.key;  
    7.     ssl_session_timeout 5m;  
    8.     ssl_protocols SSLv2 SSLv3 TLSv1;  
    9.     ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;  
    10.     ssl_prefer_server_ciphers on;  
    11.     server_name localhost;  
    12.     root /usr/share/nginx/html;  
    13.     location / {  
    14.         index index.html 50x.html;  
    15.     }  
    16. }  
    复制代码
    PS:建议复制粘贴,自己手打的话主义使用四个空格来对齐。参考我上面“基于Nginx的SSL证书配置”的话请修改前面的对齐,因为他不使用空格,检测报错

    第五、检查配置文件正确性
    1. shell> /usr/sbin/nginx -t  
    2. //会提示client证书的密码  
    3. shell> /usr/sbin/nginx restart  
    4. //配置的ssl必须重启才能生效。所以不要使用reload命令  
    5. //这里也会提示输入client证书的密码  
    复制代码
    第六、检验
    直接在浏览器输入你的https://server_name(server_nam为你的配置文件的server_name那里

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部