AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1058811

vrao's questions

Martin Hope
vrao
Asked: 2024-01-19 13:11:19 +0800 CST

Erro Curl FTP Não foi possível resolver o host

  • 5

Estou tentando me conectar a um site parceiro do servidor Ubuntu via FTP usando curl. O comando é dado pelo parceiro de negócios

curl -v -kG --ftp-method nocwd --ftp-ssl -cert "domainname.crt" --key "domainname.key" -u user:password ftp://ftp.partner.biz/

Recebo o seguinte erro.

* Could not resolve host: domainname.crt
* Closing connection 0
curl: (6) Could not resolve host: domainname.crt
*   Trying <ipaddr>:21...
* TCP_NODELAY set
* Connected to ftp.partner.biz (<ipaddr>) port 21 (#1)
< 220 (<partnername>)
> AUTH SSL
< 504 unknown security mechanism
> AUTH TLS
< 234 AUTH TLS OK starting TLS negotiation
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS alert, handshake failure (552):
* error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure
* Closing connection 1

Vejo as portas 22 e 443 escutando no meu servidor

tcp6       0      0 :::22                   :::*                    LISTEN      1570/sshd: /usr/sbi
tcp6       0      0 :::443                  :::*                    LISTEN      5802/apache2 

O parceiro diz que não há registro de erros da sua parte. Tem algo a ver com tcp6 ou outra coisa. Não posso alterar o formato do comando porque o parceiro diz que funciona com outros clientes. Estou indefeso. Alguém pode me dizer o que há de errado?

ftp
  • 2 respostas
  • 30 Views
Martin Hope
vrao
Asked: 2023-12-04 05:03:31 +0800 CST

configurando SSL para dois aplicativos diferentes no mesmo servidor: servidor web e python

  • 5

Quero executar SSL para o servidor web https://www.domainname.com na porta 443 e o servidor python REST api https://mgmt.domainname.com com Flask. Eu configurei o Apache SSL e ele está rodando em 443. Executei um programa python simples do flask

import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return 'Howdy world!'

if __name__ == "__main__":
    app.run(ssl_context='adhoc')

Saída:

* Serving Flask app 'backend2'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on https://127.0.0.1:5000

Habilitou o seguinte:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo systemctl restart apache2

Questões:

  1. O servidor web e o programa python podem escutar em 443? A única diferenciação seriam URLs separados para servidor web e API REST. Eu li que preciso implementar o Apache mod_ssl. Portanto, modifique o arquivo /etc/apache2/sites-available/default-ssl.conf existente para proxy reverso

         <IfModule mod_ssl.c>
         <VirtualHost _default_:443>
         DocumentRoot /srv/www/wordpress
         ServerName www.domain-name.com
         SSLEngine on
         SSLCertificateFile /root/cert/domainname.com.crt
         SSLCertificateKeyFile /root/cert/domainname.com.key
    
         ProxyPreserveHost On
         ProxyPass / http://IPAddr:443/
         ProxyPassReverse / http://IPAddr:443/
         </VirtualHost>
         </IfModule>
    

Não sei se esta modificação do Proxy Reverso é boa o suficiente ou o que mais precisa ser feito?

  1. Devo modificar o servidor WSGI com este código:

    import wsgiserver
    
    def my_app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ['WSGIserver is running!']
    server = wsgiserver.WSGIServer(my_app, certfile='cert.pem', keyfile='privkey.pem')
    server.start()
    

Da mesma forma, daqui para frente, a API REST deve ser capaz de chamar diferentes partes do programa Python com base no caminho/parâmetros de consulta de URL, o que significa que algum tipo de roteamento precisa ser configurado usando Apache mod_proxy e mod_ssl ou algum aspecto do servidor WSGI? Quero saber por onde e como começar: Configure o Apache e ou WSGI. Entendo que há outros problemas que precisam ser resolvidos em qualquer caminho. Por favor, informe para que eu possa começar e avançar gradativamente

EDIÇÕES: Seguiu o URL de exemplo fornecido por @vidarlo Editou /etc/apache2/sites-available/default-ssl.conf e adicionou o código VirtualHost conforme sugerido para encaminhar https://api.domainname.com para localhost:5000. Iniciou um servidor WSGI na porta 5000 assim: conteúdo do arquivo wsgi.py:

import wsgiserver
def gs_app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ['WSGIserver is running!']
server = wsgiserver.WSGIServer(gs_app, host='127.0.0.1', port=5000)
server.start()

Executei python3 wsgi.py e verifiquei que o processo está sendo executado na porta 5000. Agora, quando acesso https:// https://api.domainname.com , recebo um pop-up de erro na janela do meu console como este:

ValueError('WSGI Applications must yield bytes')
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/wsgiserver.py", line 1394, in communicate
    req.respond()
  File "/usr/local/lib/python3.8/dist-packages/wsgiserver.py", line 848, in respond
    self.server.gateway(self).respond()
  File "/usr/local/lib/python3.8/dist-packages/wsgiserver.py", line 2347, in respond
    raise ValueError("WSGI Applications must yield bytes")
ValueError: WSGI Applications must yield bytes
ssl
  • 2 respostas
  • 74 Views
Martin Hope
vrao
Asked: 2023-11-01 11:43:48 +0800 CST

Apache2 não escuta SSL no Ubuntu

  • 6

Tentando configurar SSL no Apache2 no servidor Ubuntu instalado Apache

sudo apt install apache2

Firewall ufw aberto

sudo ufw allow 'Apache'
ufw allow https

Arquivos SSL instalados em /root/cert

 chmod 400 /root/cert/*
  chmod 500 /root/cert/

Em /etc/apache2/sites-available encontrei dois arquivos conf: domainname.conf e default-ssl.conf Não sabia qual modificar, então modifiquei domainname.conf adicionando as seguintes linhas

 <VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /root/cert/ca-bundle.crt
        SSLCertificateKeyFile /root/cert/Private.key
        SSLCertificateChainFile /root/cert/certificate.crt
   </VirtualHost>

apachectl configtest
apachectl restart
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
systemctl enable apache2 --now 
netstat -ntlp |  grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      899/apache2  

netstat -ntlp |  grep 443

returns nothing

Informação adicionada - a resolução do DNS do site ainda não aconteceu, pois o servidor de nomes está sendo alterado. Então, estou verificando no localhost. localhost:80 funciona, localhost:443 não funciona dá erro: localhost recusou-se a conectar

Muitas questões:

  1. troquei os arquivos SSLCertificateFile SSLCertificateChainFile por engano, pois não fiz qual era qual. Também possui declaração de comentário -----BEGIN CERTIFICATE----- e -----BEGIN CERTIFICATE-----

  2. Quando eu atuo

    apache2ctl configtest diz AH00558: apache2: Não foi possível determinar de forma confiável o nome de domínio totalmente qualificado do servidor, usando 127.0.0.1. Defina a diretiva 'ServerName' globalmente para suprimir esta mensagem Sintaxe OK

Isso é um problema, já que o servidor de nomes ainda está apontando para o provedor antigo e estou mudando para o novo servidor de nomes do provedor onde o novo site está sendo executado.

Alguém pode ajudar?

ubuntu
  • 4 respostas
  • 82 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve