编译安装时候加上这个--with-http_ssl_module
生成两个文件443.crt和443.key。crt是证书,key是私钥
1、先生成私key文件,再用之生成加密的私key文件
openssl genrsa -des3 -out p.key
随便写个密码
openssl rsa -in p.key -out 443.key
输入一遍建立p.key的那个密码,使用443.key的时候就不需要密码了
2、生成证书请求文件csr
openssl req -new -key 443.key -out 443.csr
Common Name要写此证书是用于哪个域名的,比如*.
3、用证书请求文件csr和私key文件生成一个十年期限的CA证书crt文件
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey 443.key -in 443.csr -out 443_CA.crt
4、生成被CA证书文件签名过的证书文件crt
openssl x509 -req -days 3650 -in 443.csr -extensions v3_usr -CA 443_CA.crt -CAkey 443.key -CAcreateserial -out 443.crt
第四步也可以不执行,只需在下文的nginx配置文件里,把443.crt换成443_CA.crt。
http,nginx配置文件里这样写
server {
listen 80;
server_name ~^(.*);
location / {
resolver 172.16.168.2;
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $http_host;
https,nginx配置文件里这样写
server {
listen 443 ssl;
ssl on;
server_name ~^(.*);
ssl_certificate /usr/local/nginx/conf/keys/443.crt;
ssl_certificate_key /usr/local/nginx/conf/keys/443.key;
location / {
resolver 172.16.168.2;
proxy_pass https://$http_host$request_uri;
proxy_set_header Host $http_host;
客户端用https访问url肯定会看到不是安全连接的警告,用户只有忽略警告,才能正常访问。这就是不找认证机构交保护费导致的!hoho
本文转自 朱科强 51CTO博客,原文链接:/zhukeqiang/1795023,如需转载请自行联系原作者