Nginx相关配置

目的:获取ssl证书文件  key 和 crt
 

【将key转换为crt】
openssl req -new -key google_test.key -out google_test.csr
openssl x509 -req -days 365 -in google_test.csr -signkey google_test.key -out google_test.crt


【将pem转换为crt】
openssl x509 -outform der -in your-cert.pem -out your-cert.crt


  1. 安装Openssl (下载地址:http://slproweb.com/products/Win32OpenSSL.html) 

安装完成记得配置环境变量。

变量名:OPENSSL_HOME

变量值: openssl自定义的安装目录\bin;

(变量值为OPENSSL安装位置下的bin目录)

          并在Path变量结尾添加一条: %OPENSSL_HOME%

         环境变量配置操作:计算机-》右击-》属性-》打开的界面选择 高级系统设置-》环境变量

          

 2. 生成证书

phpstudy 安装目录下找到nginx文件夹 新建openssl目录

打开cmd 进入到openssl目录 依次执行以下操作

第一步:创建私钥

在命令行中执行命令:

openssl genrsa -des3 -out google_test.key 1024

输入密码123456,再次重复输入确认密码。记住此密码,后面会用到。

第二步:创建csr证书

在命令行中执行命令:

openssl req -new -key google_test.key -out google_test.csr

其中key文件为刚才生成的文件。

执行上述命令后,需要输入一系列的信息。输入的信息中最重要的为Common Name,这里输入的域名即为我们要使用https访问的域名 ,比如我输入的是www.google.com。其它的内容随便填即可。

以上步骤完成后,openssl文件夹内出现两个文件:google_test.csr 和 google_test.key

第三步:去除密码。

在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。

复制google_test.key并重命名为google_test.key.org。

在命令行中执行如下命令以去除口令:

openssl rsa -in google_test.key.org -out google_test.key

然后输入密码,这个密码就是上文中在创建私钥的时候输入的密码(123456)。

第四步:生成crt证书

在命令行中执行此命令:

openssl x509 -req -days 365 -in google_test.csr -signkey google_test.key -out google_test.crt

至此,证书生成完毕。我们发现,openssl文件夹中一共生成了4个文件。下面,配置https服务器的时候,我们需要用到的是其中的google_test.crt和google_test.key这两个文件。

 

  1. nginx 配置

编辑D:\phpStudy\nginx\conf\vhost.conf

虚拟配置例子:

 使用 crt + key 证书

server {
        listen       443 ssl;
        server_name  www.testhttps.com ;
        root   "E:/www/testhttps";
        ssl_certificate     E:/software/phpstudy/PHPTutorial/nginx/openssl/google_test.crt;
        ssl_certificate_key  E:/software/phpstudy/PHPTutorial/nginx/openssl/google_test.key;

        ssl_session_timeout  5m;

        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;


        location / {
            index  index.html index.htm index.php;
            #autoindex  on;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

 使用 pem + key 证书


server {
        listen       443;
        root   "C:/ruanjian/PHPStudy/PHPTutorial/WWW";
        server_name  798ziyuan.com www.798ziyuan.com;

        autoindex on;   #开启nginx目录浏览功能
        autoindex_exact_size off;   #文件大小从KB开始显示
        autoindex_localtime on;   #显示文件修改时间为服务器本地时间

        ssl                  on;
        ssl_certificate      www.798ziyuan.com/full_chain.pem;
        ssl_certificate_key  www.798ziyuan.com/full_chain.key;

        ssl_session_timeout  5m;
        ssl_protocols  SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers   on;

        location / {
            #root   html;
            index  index.html index.htm  index.php;
        }

        location = /favicon.ico {
            log_not_found off; access_log off;
        }

}
 

 

版本:phpstudy 2018
报错:500 Internal Server Error
原因:手动选择路径的时候,产生了斜杠不同
正确:“D:/phpStudy/PHPTutorial/WWW/thinkphp50/public”
错误:“D:\phpStudy\PHPTutorial\WWW\composer\tp51\public”

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐