nginx使用SSL模块配置HTTPS支持

本文介绍如何生成自签名SSL证书,并详细说明了使用OpenSSL工具创建服务器私钥、证书请求的过程,以及如何配置Nginx来启用SSL加密。此外还提供了80端口重定向至443端口的方法。

生成证书

创建服务器私钥,命令会让你输入一个口令:

$ openssl genrsa -des3 -out server_org.key 1024

除去私钥口令,否则启动时需要输入口令(没亲试)

$ openssl rsa -in server_org.key -out server.key

生成一个证书请求(CSR),生成证书请求,会提示输入省份、城市、域名信息、邮箱等。

$ openssl req -new -key server_org.key -out server.csr

Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:Beijing Locality Name (eg, city) [Default City]:Beijing Organization Name (eg, company) [Default Company Ltd]:CompanyName Organizational Unit Name (eg, section) []:unitName Common Name (eg, your name or your server's hostname) []:hostName Email Address []:admin@xx.com

注意Common Name不能省略,某些svn客户端访问会验证这项而导致访问失败, 例如TortoiseSVN会报:

方法OPTIONS 失败于“https://xxx/svn/xx”: Server certificate was missing commonName attribute in subject name

自己签发证书

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

配置nginx的SSL

    server {
        server_name YOUR_DOMAINNAME_HERE;
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/conf.d/server.crt;
        ssl_certificate_key /etc/nginx/conf.d/server.key;
    }

重启nginx,这样就可以通过以下方式访问: https://YOUR_DOMAINNAME_HERE

自行颁发的SSL证书能够实现加密传输功能,但浏览器并不信任,会告警,选择继续或者添加例外可访问。如果要获取受浏览器信任的证书,则需要到证书提供商处申请。证书授证中心,又叫做CA机构,为每个使用公开密钥的用户发放一个数字证书。CA签发的证书一般都价格不菲,小网站可选择一些免费证书,国内免费证书可考虑沃通,比较方便。

另外还可以加入如下代码实现80端口重定向到443:

    server {
       listen 80;
       server_name YOUR_DOMAINNAME_HERE;
       rewrite ^(.*) https://$server_name$1 permanent;
    }

转载于:https://my.oschina.net/ccor/blog/690032

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值