Why am I getting different responses on the same Curl request? - ssl

I have two vps, when I do curl --verbose https://es.aliexpress.com/item/1005004830406404.html
different things happen, on a server it returns the response correctly with the following header
https://hastebin.com/onifayedam.yaml
but on the other server, newly configured it returns 404 with the following header
https://hastebin.com/okibilihir.php-template
I have tried to reinstall the certificates, even to reinstall the operating system from 0 without any result.
I would be grateful for any help or recommendation.

Related

Getting 403 Forbidden on a webpage running on Apache HTTP server

The problem is as follows:
I've been trying to get my page running on the Oracle Cloud Instance - I installed everything required, got my files into /var/www/[websitename.com] and started the httpd process.
For some strange reason, however, the server is unable to access the files there.
Going to the page just throws a 403 Forbidden.
I've changed the owner of /var/www/* to 'apache' so at first glance, the permissions should be there.
The log however says this:
file permissions deny server access: /var/www/[websitename.com]/html/index.html
I've been trying to fix this for 2 days, and I just cannot figure it out.
There's apparently a bunch of similar questions, but none of the solutions have worked for me.
Can anyone help?
I tried changing the ownership with chmod and chown, but it did not help - the error persists.
I've also tried chown -R apache:root /var/www/html but still with no result.

Github API: Mulitple parameters not Working

ENVIRONMENT: Ubuntu 20.04
TASK: Mine all closed bug reports (issues) with the label 'incorrect' from the repository Ansible.
SOLUTIONS: I have tried using Github's REST API via the curl command. However, curl is either stalling or simply producing a server error. I have not seen much usage of how to include multiple parameters or working with large requests even from the documentation
First thing I tried was to mine just the closed issues, below mines all the closed issues or so it seems. It looks like it only includes a couple which leads me to think there are 'pages' to large requests?
curl "https://api.github.com/repos/ansible/ansible/issues?state=closed" > closed_issues
However the 'labels' is not working for me neither is combining the two. I get a "server_error" and it stops there.
curl "https://api.github.com/repos/ansible/ansible/issues?state=closed&labels=incorrect" > labeled_closed_issues

Apache Mod Filter AH02429

After a fresh install of Apache 2.4.27 on my Unix system I discovered something really odd. My local server giving me 500 error with this error log
AH02429: Response header name 'Content-Length' contains invalid characters, aborting request I tried with all installed browser Chrome, Firefox, Safari problem is same. As I can see my browsers not sending this header, not sure why I am encountering this error. I tried with curl and it's same. Added some tweaks on my httpd.conf file, nothing changed.
I Googled and found that this error comes form apache new module Filter. My apache complied with all modules is there anyway to tell the Filter module to not check for headers or something?
Any kind of help will be life saving.
Thanks in advance

Pushing my Mercurial Repository through HTTP with Apache and Windows

So I have managed it. I can clone mercurial-repositories remotely using HTTP to my Windows Server 2003 machine and the ipaddress from that machine. Although I did deactivate IIS6 and am using Apache 2.2.x now. But not all works right now...darn! Here's the thing:
Cloning goes smooth! But when I want to push my changes to the original repository I get the message "cannot lock static http-repository". On the internet I get to read several explanations that Mercurial wasn't designed to push over HTTP connections. Still, on the Mercurial website there's something about configuring an hgrc file.
There's also the possibilty to configure Apache to host via HTTPS (or SSL). For this you have to load the module enabling OpenSSL and generating keys.
Configuring the hgrc file
Just add "push_ssl = false" under the [web] line. But where to put this file when pushing your changes back?! Because I placed it in the root of the server, in the ".hg" directory, nothing works.
Using SSL/HTTPS with Apache
When I try to access 'https://myipaddress' it fails, displaying a dutch message which would mean something like "server taking too long to respond". Trying to push also gives me a dutch error message which means about the same. It can not connect to my server via https although I followed the steps exactly at this blog.
I don't care which of the above solutions will work for me. Turns out none of them work so far. So please, can anyone help me with one of the solutions above? Pick the easiest! Help will be greatly appreciated, not only from me.
Summary
-Windows Server 2003
-Apache 2.2 with OpenSSL
-Mercurial 1.8.2
-I can clone, but not push!
Thank you!
Maarten Baar(s)
It seems like you might have apache configured incorrectly for getting it to do what you want. Based on your question it sounds like you have a path (maybe the root of the server) pointing to the repository you want to serve.
Mercurial comes with a script for this exact purpose, in the latest version it is hgweb.cgi. There are reasonably good instructions for setting it up on the mercurial site. It should allow both cloning and pushing. You will need the push_ssl=false if you will not be configuring https and also an allow_push line which will let certain users, or all (*) push to the repository. But all that should be part of the setup docs.

CouchDB replication is not working properly behind a proxy

Note: Made some updates based on new information. Old ideas have been added as comments below.
Note: Made some updates (again) based on new information. Old ideas have been added as comments below (again).
We are running two instances of CouchDB on separate computers behind Apache reverse proxies. When attempting to replicate between the two instances:
curl -X POST http://user:pass#localhost/couchdb/_replicate -d '{ "source": "db1", "target": "http://user:pass#10.1.100.59/couchdb/db1" }' --header "Content-Type: application/json"
(we started using curl to debug the problem)
we receive an error similar to:
{"error":"case_clause","reason":"{error,\n {{bad_return_value,\n {invalid_json,\n <<\"<!DOCTYPE HTML PUBLIC \\\"-//IETF//DTD HTML 2.0//EN\\\">\\n<html><head>\\n<title>404 Not Found</title>\\n</head><body>\\n<h1>Not Found</h1>\\n<p>The requested URL /couchdb/db1/_local/01e935dcd2193b87af34c9b449ae2e20 was not found on this server.</p>\\n<hr>\\n<address>Apache/2.2.3 (Red Hat) Server at 10.1.100.59 Port 80</address>\\n</body></html>\\n\">>}},\n {child,undefined,\"01e935dcd2193b87af34c9b449ae2e20\",\n {gen_server,start_link,\n [couch_rep,\n [\"01e935dcd2193b87af34c9b449ae2e20\",\n {[{<<\"source\">>,<<\"db1\">>},\n {<<\"target\">>,\n <<\"http://user:pass#10.1.100.59/couchdb/db1\">>}]},\n {user_ctx,<<\"user\">>,\n [<<\"_admin\">>],\n <<\"{couch_httpd_auth, default_authentication_handler}\">>}],\n []]},\n temporary,1,worker,\n [couch_rep]}}}"}
So after further research it appears that apache returns this error without attempting to access CouchDB (according to the log files). To be clear when fed the following URL
/couchdb/db1/_local/01e935dcd2193b87af34c9b449ae2e20
Apache passes the request to CouchDB and returns CouchDB's 404 error. On the other hand when replication occurs the URL actually being passed is
/couchdb/db1/_local%2F01e935dcd2193b87af34c9b449ae2e20
which apache determines is a missing document and returns its own 404 error for without ever passing the request to CouchDB. This at least gives me some new leads but I could still use help if anyone has an answer offhand.
The source CouchDB (localhost) is telling you that the remote URL was invalid. Instead of a CouchDB response, the source is receiving the Apache httpd proxy's file-not-found response.
Unfortunately, you may have some reverse-proxy troubleshooting to do. My first guess is the Host header the source is sending to the target. Perhaps it's different from when you connect directly from a third location?
Finally, I think you probably know this, but the path
/couchdb/db1/_local%2F01e935dcd2193b87af34c9b449ae2e20
Is not a standard CouchDB path. By the time CouchDB sees a request, it should have the /couchdb stripped, so the query is for a document called _local%2f... in the database called db1.
Incidentally, it is very important not to let the proxy modify the paths before they hit couch. In particular, if you send %2f then CouchDB had better receive %2f and if you send / then CouchDB had better receive /.
From official documentation...
Note that HTTPS proxies are in theory supported but do not work in 1.0.1. This is because 1.0.1 ships with ibrowse version 1.5.5. The CouchDB version in trunk (from where 1.1 will be based) ships with ibrowse version 1.6.2. This later ibrowse contains fixes for HTTPS proxies.
Can you see which version of ibrowse is involved? Maybe update that ver?
Another thought I have is with regard to the SSL certs. If you don't have any, and I know you don't :), then technically you're doing SSL wrong. In java we know there are ways around this, but maybe try putting in proper certs since all SSL stuff basically involves certs.
And for my last contribution (today) I would say have you looked through this document which seems highly relevant?
http://wiki.apache.org/couchdb/Apache_As_a_Reverse_Proxy