nginx + PHP 下 添加 https 的支持
程序员文章站
2022-07-12 16:38:58
...
1. 创建key
server.key 可以随意修改server部分。例如:baidu.key
openssl genrsa -des3 -out server.key 2048
输入密码即可。
如果不要口令,则可用以下命令去除口令:
openssl rsa -in server.key -out server.key
2. 创建 csr
server.key为创建key时输入的文件名:baidu.key
server.csr 可以随意修改server部分。例如:baidu.csr
openssl req -new -key server.key -out server.csr
按流程填写,如
Country Name (2 letter code) [GB]: JP //国家 例如 :CN
State or Province Name (full name) [Berkshire]:Tokyo // 州或省的名称,必须是全称
Locality Name (eg, city) [Newbury]:Bunkyo-ku // 城市名称
Organization Name (eg, company) [My Company Ltd]: BaiDu // 公司名称
Organizational Unit Name (eg, section) :BAIDU //项目名称
Common Name (eg, your name or your server's hostname) []:abc.com //项目url。例如:baidu.com 不包含http://
Email Address []:youxiang@sina.com // 注意邮件地址要和注册域名时的邮件地址一样
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 回车
An optional company name []: 回车
3. 通过 server.key server.csr 在相应的网站申请 证书
如: http://www.startssl.com/
http://ocsp.godaddy.com/
申请成功后会得到两个文件:
gd_bundle.crt abc.com.crt
4. 设置nginx的配置
上传 gd_bundle.crt abc.com.crt 文件至 nginx的配置目录下 /usr/local/nginx/conf
执行
cat abc.com.crt gd_bundle.crt > abc.com.chained.crt
Nginx的配置如下:
server {
listen 443;
server_name ttt.e.com;
ssl on;
ssl_certificate /usr/local/nginx/conf/abc.com.chained.crt;
ssl_certificate_key /usr/local/nginx/conf/abc.com.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root html;
index index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
fastcgi_param HTTPS on;
include fastcgi.conf;
}
}
5. 验证
执行
openssl s_client -connect www.godaddy.com:443
最后访问 https://abc.com 如果能看到证书的信息,而且连接都正常就OK了。
注意:
安装nginx 时要加上https模块,编译时:
./configure --with-http_sub_module --with-http_ssl_module
可以用 /usr/local/nginx/sbin/nginx -V 来查看。
生成证书不被信任的 证书。也就是测试版测试用的,不用花钱就可以有的证书,这样的证书是不被浏览器认可的,但是 测试是没有问题的
$ cd /usr/local/nginx/conf
$ openssl genrsa -des3 -out server.key 1024
$ openssl req -new -key server.key -out server.csr
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out
server.crt
编辑
nginx.conf
server {
server_name YOUR_DOMAINNAME_HERE;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
}
OK,
完成了
http://blog.csdn.net/cuiyuan9/article/details/8280872
server.key 可以随意修改server部分。例如:baidu.key
openssl genrsa -des3 -out server.key 2048
输入密码即可。
如果不要口令,则可用以下命令去除口令:
openssl rsa -in server.key -out server.key
2. 创建 csr
server.key为创建key时输入的文件名:baidu.key
server.csr 可以随意修改server部分。例如:baidu.csr
openssl req -new -key server.key -out server.csr
按流程填写,如
Country Name (2 letter code) [GB]: JP //国家 例如 :CN
State or Province Name (full name) [Berkshire]:Tokyo // 州或省的名称,必须是全称
Locality Name (eg, city) [Newbury]:Bunkyo-ku // 城市名称
Organization Name (eg, company) [My Company Ltd]: BaiDu // 公司名称
Organizational Unit Name (eg, section) :BAIDU //项目名称
Common Name (eg, your name or your server's hostname) []:abc.com //项目url。例如:baidu.com 不包含http://
Email Address []:youxiang@sina.com // 注意邮件地址要和注册域名时的邮件地址一样
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 回车
An optional company name []: 回车
3. 通过 server.key server.csr 在相应的网站申请 证书
如: http://www.startssl.com/
http://ocsp.godaddy.com/
申请成功后会得到两个文件:
gd_bundle.crt abc.com.crt
4. 设置nginx的配置
上传 gd_bundle.crt abc.com.crt 文件至 nginx的配置目录下 /usr/local/nginx/conf
执行
cat abc.com.crt gd_bundle.crt > abc.com.chained.crt
Nginx的配置如下:
server {
listen 443;
server_name ttt.e.com;
ssl on;
ssl_certificate /usr/local/nginx/conf/abc.com.chained.crt;
ssl_certificate_key /usr/local/nginx/conf/abc.com.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root html;
index index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
fastcgi_param HTTPS on;
include fastcgi.conf;
}
}
5. 验证
执行
openssl s_client -connect www.godaddy.com:443
最后访问 https://abc.com 如果能看到证书的信息,而且连接都正常就OK了。
注意:
安装nginx 时要加上https模块,编译时:
./configure --with-http_sub_module --with-http_ssl_module
可以用 /usr/local/nginx/sbin/nginx -V 来查看。
生成证书不被信任的 证书。也就是测试版测试用的,不用花钱就可以有的证书,这样的证书是不被浏览器认可的,但是 测试是没有问题的
$ cd /usr/local/nginx/conf
$ openssl genrsa -des3 -out server.key 1024
$ openssl req -new -key server.key -out server.csr
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out
server.crt
编辑
nginx.conf
server {
server_name YOUR_DOMAINNAME_HERE;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
}
OK,
完成了
http://blog.csdn.net/cuiyuan9/article/details/8280872
推荐阅读
-
部署支持 https 的 Nginx 服务
-
利用Memcached在php下实现session机制 替换PHP的原生session支持
-
nginx下支持PATH_INFO的方法实例详解
-
详解Linux环境下使Nginx服务器支持中文url的配置流程
-
windows7下安装PHP+nginx的方法
-
CentOS7 下nginx与PHP的安装与配置
-
探讨GDFONTPATH能否被winxp下的php支持
-
centos6.6 下 安装 php7 + nginx环境的方法
-
CentOS7 配置Nginx支持HTTPS访问的实现方案
-
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤