V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kmdd33
V2EX  ›  问与答

centos7 如何开启 443 端口,试了好多教程都没有用

  •  
  •   kmdd33 · 2017-03-19 09:38:20 +08:00 · 25726 次点击
    这是一个创建于 2595 天前的主题,其中的信息可能已经有所发展或是发生改变。

    总共参考了 3 篇教程 https://segmentfault.com/a/1190000006736884 http://stackoverflow.com/questions/24729024/centos-7-open-firewall-port http://www.jb51.net/article/95212.htm 结果还是不行啊 输入 netstat -tanp 显示有 3306 80 还有自己设置的 ssh 端口,死活看不见 443 端口。怎么办?没有 443 端口,我现在配置的 cloudflare 打开域名,前面会默认显示 https 但是就是一个圈里面一个感叹号,没有启用,怎么办?各位伙伴们?如何开启 443 端口?

    21 条回复    2017-03-20 08:39:15 +08:00
    xiaoz
        1
    xiaoz  
       2017-03-19 09:39:43 +08:00 via iPhone
    老哥,你没有监听 443 端口吧。
    yuhuan66666
        2
    yuhuan66666  
       2017-03-19 09:39:47 +08:00 via Android
    搜 firewall 吧
    dynaguy
        3
    dynaguy  
       2017-03-19 09:42:23 +08:00
    mod_ssl 裝載了嗎?
    chanssl
        4
    chanssl  
       2017-03-19 10:14:17 +08:00 via Android
    centos 7 内置的防火墙是 firewalld ,用第二个链接的方法即可。如果你想改用 iptables ,就按第一个链接,先关闭 firewalld ,再安装启用 iptables ,开放端口
    mringg
        5
    mringg  
       2017-03-19 10:15:23 +08:00 via iPhone
    我感觉老哥是根本没起程序
    xiaoz
        6
    xiaoz  
       2017-03-19 10:24:45 +08:00 via iPhone   ❤️ 1
    netstat -apn|grep '443' 如果没有,说明压根没监听,放行了也没用。
    xiaoz
        7
    xiaoz  
       2017-03-19 10:25:05 +08:00 via iPhone
    @mringg 我也觉得
    sundong
        8
    sundong  
       2017-03-19 10:55:02 +08:00
    1.安装
    http://www.nginx.cn/doc/optional/ssl.html
    2.申请 SSL 证书
    falcon05
        9
    falcon05  
       2017-03-19 11:55:00 +08:00 via iPhone
    得先在 web Server 打开
    artandlol
        10
    artandlol  
       2017-03-19 12:48:30 +08:00 via Android
    先 nc -l 443 & 再 nc 地址 443
    检测下内外网是否都开了
    digimoon
        11
    digimoon  
       2017-03-19 12:57:04 +08:00
    以前装的 minimal 版 centos7 ,不知道自带有 firewalld ,搞了半天才发现这东西然后禁用了用回 iptables
    him007
        12
    him007  
       2017-03-19 15:21:27 +08:00 via Android
    > 怎么办?没有 443 端口,我现在配置的 cloudflare 打开域名,前面会默认显示 https 但是就是一个圈里面一个感叹号,没有启用,怎么办?

    按 f12 看看,可能引用了 http 资源吧
    Quaintjade
        13
    Quaintjade  
       2017-03-19 15:56:46 +08:00
    如果 netstat 没有的话,应该是没监听
    yum install mod_ssl
    systemctl restart httpd

    至于防火墙,常见应用直接添加服务即可,都预设好的。
    firewall-cmd --permanent --add-service=https
    firewall-cmd --reload

    由于开在默认端口上,所以无须配置 SELinux ,否则还得添加一下端口。
    xiejc
        14
    xiejc  
       2017-03-19 16:55:47 +08:00
    nginx + certbot 有域名,刚装好
    singer
        15
    singer  
       2017-03-19 17:30:40 +08:00 via iPhone
    防火墙拦住了吧
    612
        16
    612  
       2017-03-19 19:53:40 +08:00 via Android
    首先在 webserver 配置文件里面 listen 443 ,然后启动服务,只要服务不报错,起来了, netstat -tunlp | grep 443 ,应该是没问题的。外网要访问的话,还得在防火墙 iptables 或者 firewall-cmd 里面把端口放开。
    kmdd33
        17
    kmdd33  
    OP
       2017-03-19 20:37:30 +08:00 via iPad
    @612,@singer,@xiejc@Quaintjade @Quaintjade @artandlol @chanssl @digimoon @dynaguy
    @falcon05 @him007 @kmdd33 @mringg @singer @xiejc @Quaintjade @sundong @xiaoz
    自己的 nginx.conf 里面没有监听 403 ,现在启用 403 端口,但是输入域名还是没有绿色的小锁,导致的情况是用户在输入服务器 ip 的情况下可以正常登陆,但是输入域名的情况下无法注册和登录
    kmdd33
        18
    kmdd33  
    OP
       2017-03-19 20:42:58 +08:00 via iPad
    浏览器 console 里面有一个错误: Mixed Content: The page at 'https://www.mydomain.com/?/ac...' was loaded over HTTPS, but requested an insecure script 'http://ajax.cloudflare.com/cd...'. This request has been blocked; the content must be served over HTTPS.说明了错误是“ Mixed Content ”,https 的内容与 http 的内容混在一起,这种请求不被允许。我想把不安全的脚本请求 http://ajax.cloudflare.com/cdn-cgi/nexp/dok3v=f2befc48d1/cloudflare.min.js 改成安全的 https://ajax.cloudflare.com/cdn-cgi/nexp/dok3v=f2befc48d1/cloudflare.min.js 但是问题来了:我没有在源程序 js 文件里面写入这个 js 也没有引用<link>,为什么会请求 cloudflare 服务器的这个 js 文件呢?我应该如何做,才能改正?
    sundong
        19
    sundong  
       2017-03-19 20:52:29 +08:00
    LZ 8 楼链接 看了没 ? 麻烦参考文档之后再回复
    hoyixi
        20
    hoyixi  
       2017-03-19 21:04:36 +08:00
    netstat -tnl
    如果木有 443 ,说明,你的服务器根本没有监听 443

    如果用的 nginx ,一般 common 的全局配置才放 nginx.conf
    站点配置一般放置 /etc/nginx/sites-available/ 下,比如 yoursite.conf,
    在 yoursite.conf 里,类比你的 80 http server 配置块,添一个 https 的 server 块,类似下面的样子:
    server {
    listen 443 ssl;
    listen [::]:443 ssl;
    ssl on;

    server_name www.yoursite.com;

    root /var/www/yoursite/public_html;
    index index.php index.html index.htm;

    ssl_certificate /etc/nginx/ssl/yoursite.crt;
    ssl_certificate_key /etc/nginx/ssl/yoursite.key;
    ...
    }

    然后做个软连接
    sudo ln -s /etc/nginx/sites-available/yoursite.conf /etc/nginx/sites-enabled/yoursite.conf

    重启 nginx , netstat -tnl 查看是否已监听 443

    另外,如果你没买 HTTPS 证书,用的是自签名证书或者 cloudflare 的,貌似你是看不到小绿锁的
    612
        21
    612  
       2017-03-20 08:39:15 +08:00 via iPhone
    @kmdd33 nginx 配置文件不监听 443,你逗我呢,啊哈?
    输入 IP 能直接访问,输入 https 域名不能访问? excuse me ? IP 访问默认的是 80 端口,好不好?
    此贴 over 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1710 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:51 · PVG 00:51 · LAX 09:51 · JFK 12:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.