Linux+nginx实现Https和http

安装nginx:

1.下载安装包:

http://nginx.org/en/download.html 上传放入安装包文件夹

2.安装之前检查安装依赖是否完善:

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
-y  :跳过询问一律 为yes

3.解压源码压缩包:

tar zxf nginx-1.10.1.tar.gz 

4.安装:./configure –prefix=/usr/nginx –with-http_ssl_module

 --prefix:指定安装位置
 --with-http_ssl_module编译ssl 默认不编译

5.编译: make && make install

&&:两个一起执行

6.安装完成

启动:sbin目录下面 ./nginx
    启动后查看运行状态:ps aux|grep nginx
停止:sbin目录下面 ./nginx -s stop
重启:sbin目录下面 ./nginx -s reload

创建key文件

创建根证书的私匙

openssl genrsa -out ssl.key 2048

利用私钥创建签名请求

openssl req -new -subj "/C=CH/ST=SH/L=SH/O=CompanyName/OU=ssl.com/CN=ssl.com" -key ssl.key -out ssl.csr

说明:这里/C表示国家(Country),只能是国家字母缩写,如CN、US等;/ST表示州或者省(State/Provice);/L表示城市或者地区(Locality);/O表示组织名(Organization Name);/OU其他显示内容,一般会显示在颁发者这栏。

将带口令的私钥移除(否者每次启用nginx都会输入口令)

mv ssl.key ssl.origin.key 
openssl rsa -in ssl.key -out ssl.key

用Key签名证书

openssl x509 -req -days 3650 -in ssl.csr -signkey test.imdst.com.key -out ssl.crt

为HTTPS准备的证书需要注意,创建的签名请求的CN必须与域名完全一致,否则无法通过浏览器验证

私钥创建签名:CN:ssl 改为:域名

修改nginx.conf文件中的server:

 server {
        listen       80;
        listen       443 ssl;
        server_name  api.sharebo.cn;
        ssl_certificate      /usr/auth/sharebo.crt;
        ssl_certificate_key  /usr/auth/sharebo.key;
        #其他就不贴出来了
      }

你可能感兴趣的:(nginx,nginx,linux,openssl)