分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Nginx配置https

发布时间:2023-09-06 02:20责任编辑:赖小花关键词:配置http

Nginx配置https首先要获得证书和key(密钥),测试用例用java自带的keytool工具生成,由于我们证书是自己生成所以只能绑定一个域名,对于我们测试足够用了。

1 证书一般放在ngingx里的conf目录里

打开cmd命令窗口,指定使用RSA算法生成一个颁发证书的机构:

执行命令:keytool -genkey -alias haojing -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore -storepass 123456

注意:目录最好不要用绝对格式,可能会有意想不到的bug

2 以上设置可以随意,只是测试用例写的有点针对性,以上命令敲完以后在你相应目录下会生成一个文件

haojing.keystore

3 我们需要的证书和密钥都在这个keystore里,接下来我们生成cer证书,还是在该目录下

执行命令:keytool -export -alias haojing -keystore C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore -storepass 123456 -rfc -file C:/JavaSoftWare/nginx-1.14.0/conf/haojing.cer

4 证书有了,接下里我们导出密钥,由于keytool不提供命令导出密钥,所以需要编写java类,测试类如下:

public class SslKey { ???public static KeyStore getKeyStore(String keyStorePath, String password) throws Exception { ???????FileInputStream is = new FileInputStream(keyStorePath); ???????KeyStore ks = KeyStore.getInstance("JKS"); ???????ks.load(is, password.toCharArray()); ???????is.close(); ???????return ks;} ????public static PrivateKey getPrivateKey() { ???????try { ???????????BASE64Encoder encoder = new BASE64Encoder(); ???????????KeyStore ks = getKeyStore("C:/JavaSoftWare/nginx-1.14.0/conf/haojing.keystore", "123456"); ???????????PrivateKey key = (PrivateKey) ks.getKey("haojing", "123456".toCharArray()); ???????????String encoded = encoder.encode(key.getEncoded()); ???????????System.out.println("-----BEGIN RSA PRIVATE KEY-----"); ???????????System.out.println(encoded); ???????????System.out.println("-----END RSA PRIVATE KEY-----"); ???????????return key; ???????} catch (Exception e) { ???????????return null; ???????}} ????public static void main(String[] args) { ???????getPrivateKey(); ???}}

5 执行完java程序控制台生成key

复制粘贴 保存文件命名为haojing,后缀为.key

6 到这一步,已经可以将cer证书(若需要crt证书,可以直接把cer证书文件的后缀改为crt即可)配置到nginx中使用。我们这边用的是crt证书,所以改下后缀

7 打开nginx的nginx.conf文件,默认配置都是把https注销的,修改如下

 #HTTPS server

    server {

        listen       443 ssl;

        server_name  localhost;

ssl_certificate      C:/JavaSoftWare/nginx-1.14.0/conf/haojing.crt;

ssl_certificate_key  C:/JavaSoftWare/nginx-1.14.0/conf/haojing.key;

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;

         location / {

             root   html;

             index  index.html index.htm;

         }

}

8 重启nginx,访问 hppts://localhost

Nginx配置https

原文地址:https://www.cnblogs.com/hzzjj/p/9898425.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved