В репозиторий добавлен Apache httpd 2.4.43-4 с поддержкой сжатия brotli от Google, http2 для Red Hat Enterprise Linux и CentOS. Mod_ssl собран динамически с OpenSSL 1.1.1g. Ссылки:
Заметим, что httpd 2.4.43 поддерживает TLS 1.3 при сборке с OpenSSL 1.1.1. Все новые шифры включены и работают. C версии 2.4.43-4 мы собираем OpenSSL отдельно, он устанавливается в /opt/codeit/openssl111 и никак не затрагивает системные библиотеки.
TLS 1.3 final на сегодня работает в Google Chrome 70+ и Mozilla Firefox 63+.
Для работы с SELinux в rpm включена соответствующая минимальная политика.
Модуль brotli уже включён в базовый RPM. Всё, что нужно — настроить фильтр
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript
Dear Friends
After installing 2.4.43-4, I have got an error with SSLCompression off after restarting httpd.service.
I would be glad for your help.
Thank you in advance for your help and support.
Sincerely
Dear User,
We disabled SSL compression on OpenSSL compilation level to avoid CRIME/BEAST vulnerabilities problems.
Just set SSLCompression off in your ssl.conf or vhosts files.
Dear Alexander
…but in my last configuration I had line SSLCompression off, but when I try to restart httpd.service I have got an error:
Setting Compression mode unsupported; not implemented by the SSL library
In the older version of your 2.4.43 it was working fine with this line.
Any idea how to resolve this?
Sincerely
Dear User,
The purpose of our builds are the new standards: fast, modern and highly secure.
We upgraded our builds to deliver OpenSSL library in a new dynamic way. Also, we disabled old and vulnerable features in it to additionally save traffic and memory.
If you want to use these older deprecated features such as compression that leads to CRIME/BEAST vulnerabilities, please use the bundled Apache httpd server from CentOS team. Alternatively, you want to use our builds, please disable the compression:
SSLCompression off
As it is not supported in this build.
Dear Alexander
I think you may not understand me like I want to 🙂 I’m using your builds from day one. I just say, that I have already used: «SSLCompression off» in all my configuration files in vhosts. In this new build 2.4.43-4 this command «SSLCompression off» is no longer recognized, so to properly run my httpd.service I needed to delete this command «SSLCompression off» from my configuration files or just add hash «#» before it.
The way you are trying to explain, to add «SSLCompression off» to my configuration files or ssl.conf is not working in this build.
For a good understanding of each other. Your build is forced to use «SSLCompression off», so there is no need to use this command anymore in any configuration files, because it’s always disabled = SSLCompression off? Is it correct?
Thank you once more for your great work.
Sincerely
Dear User,
Thanks for clarification, indeed I did not usnerstood you right.
Yes, OpenSSL library that we ship, does not support SSL compression and if you use our library, SSL compression is always off, even you do not explicitly specify «SSLCompression off».
You should not have removed the SSLCompression option.
It broke all our server when the update was done. And no warning. My Compression was always set to off.
Very angry.
But hey, I’m glad you are offering the repo free of charge.
Actually we did not removed it.
This is original Apache httpd behavior and we never had SSLCompression in sample config files and test hosts.
Please always test your configuration after upgrade with
httpd -t
And restart your server only after that. Also you can have your own staging environment with similar configuration to be less angry.
I think we will return compression support temporarily because of this regression.
I use apachectl -t
Is that why I get no return? the command is wrong?
Since when does this config is invalid then? I had SSLCompression off since 2018
I have no idea on
apachectl -t
unfortunately.Please upgrade to openssl111-1.1.1g-2 and httpd-2.4.43-5 and report if it works for your setup.
Well, I tested httpd -t and it worked.
Must be a change that happend sometime ago. Or when I switched repo for yours.
This morning my system updated to this :
httpd x86_64 2.4.43-4.codeit.el7 CodeIT 1.4 M
httpd-filesystem noarch 2.4.43-4.codeit.el7 CodeIT 29 k
httpd-tools x86_64 2.4.43-4.codeit.el7 CodeIT 94 k
mod_ssl x86_64 1:2.4.43-4.codeit.el7 CodeIT 121 k
Installing for dependencies:
openssl111-libs x86_64 1.1.1g-1.codeit.el7 CodeIT 1.4 M
Works OK right now. Won’t update manually. Thanks a lot for your help
Our server is crashing almost daily after we upgraded to 2.4.43-4. A lot of mpm errors and zend memory issues. Basically overnight the ram usage goes from 20% to 100% and everything crashes. The only solution is to keep rebooting constantly. Just updated to 2.4.43-5. Do you know what was fixed in this version?
Hello,
In 2.4.43-5 we only rebuilt it with OpenSSL compression support to return SSLCompression back.
Please check different mpms and php support for them. Usually they recommend to use php-fpm for event and preform mpms.
Hi Alexander, thanks for quick reply and for suggestions which I’ve double-checked.
However, your suggestion prompted me to look deeper and compare operational server with vanilla build. Turns out «which hostname» on a vanilla machine yields the «correct» /usr/bin/hostname.
Traced to inconsistent PATH settings set in csh.login, in turn traced this to setup-2.8-x.rpm
The misbehaving server would appear to have the CentOS «cr» repo enabled. This increments the base setup-2.8.71-10.el7.noarch to setup-2.8.71-11.el7.noarch.
One change is a difference in /etc/csh.login which is defining a completely different PATH variable than system default — csh.login in later version has a setenv PATH statement which is placing /bin before /usr/bin and therefore resulting in the error reported.
This is clearly self-inflicted on our test box, apologies for taking up your time, thanks for reviewing.
For anyone else experiencing same issues, be very wary of the CentOS7 «cr» repo!
Thank you for your investigation and the report, Rob!
Hi Alexander, the plot thickens…
I’m going to backtrack on that. Seems the pathnames were a redherring. I have just built a virgin CentOS7 machine, applied the EPEL repo to it, carried out a full update then added the CodeIT CentOS7 repo.
Here’s my results.
It will quite happily install an earlier version of mod_ssl but not latest from CodeIT repo. To my little brain, it would appear something is actually amiss with mod_ssl package?
Grateful for any ideas
Cheers
Rob
[root@tdtst01 yum.repos.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@tdtst01 yum.repos.d]# which hostname
/bin/hostname
[root@tdtst01 yum.repos.d]# dnf install httpd mod_ssl
Last metadata expiration check: 0:06:57 ago on Mon 27 Apr 2020 14:05:30 UTC.
Dependencies resolved.
Problem: cannot install the best candidate for the job
— nothing provides /usr/bin/hostname needed by mod_ssl-1:2.4.43-6.codeit.el7.x86_64
=====================================================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================================================
Installing:
httpd x86_64 2.4.43-2.codeit.el7 CodeIT 1.4 M
mod_ssl x86_64 1:2.4.43-2.codeit.el7 CodeIT 1.3 M
Installing dependencies:
brotli x86_64 1.0.7-5.el7 epel 318 k
libnghttp2 x86_64 1.31.1-2.el7 epel 67 k
sscg x86_64 2.6.1-1.el7 epel 60 k
libtalloc x86_64 2.1.16-1.el7 cr 33 k
libpath_utils x86_64 0.2.1-32.el7 base 28 k
mailcap noarch 2.1.41-2.el7 base 31 k
apr x86_64 1.7.0-2.el7 CodeIT 122 k
apr-util x86_64 1.6.1-6.el7 CodeIT 98 k
httpd-filesystem noarch 2.4.43-2.codeit.el7 CodeIT 27 k
httpd-tools x86_64 2.4.43-2.codeit.el7 CodeIT 1.3 M
mod_http2 x86_64 1.15.7-1.codeit CodeIT 208 k
Skipping packages with broken dependencies:
mod_ssl x86_64 1:2.4.43-6.codeit.el7 CodeIT 121 k
Transaction Summary
=====================================================================================================================================================
Install 13 Packages
Skip 1 Package
Total download size: 5.0 M
Installed size: 14 M
Is this ok [y/N]:
Hi Rob,
Just try to update to the latest hostname package, as I suggested earlier.
yum upgrade hostname
hostname-3.13-3.el7_7.1.x86_64 from the Updates CentOS 7 repo should work fine for you.
Hi Alexander,
Once again this side bad, and for complete disclosure the issue is with YUM vs DNF.
Turns out that on the test box yum had been swapped for dnf in the extras repo.
Interestingly yum behaves where dnf does not. dnf DOES behave if wanting to install previous version of mod_ssl. I have never delved into rpm specifications, so cannot answer why one works and the other doesnt.
yum install httpd mod_ssl
—> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================================================
Installing:
httpd x86_64 2.4.43-6.codeit.el7 CodeIT 1.4 M
mod_ssl x86_64 1:2.4.43-6.codeit.el7 CodeIT 121 k
Installing for dependencies:
apr x86_64 1.7.0-2.el7 CodeIT 122 k
apr-util x86_64 1.6.1-6.el7 CodeIT 98 k
brotli x86_64 1.0.7-5.el7 epel 318 k
httpd-filesystem noarch 2.4.43-6.codeit.el7 CodeIT 29 k
httpd-tools x86_64 2.4.43-6.codeit.el7 CodeIT 94 k
libnghttp2 x86_64 1.31.1-2.el7 epel 67 k
libpath_utils x86_64 0.2.1-32.el7 base 28 k
libtalloc x86_64 2.1.16-1.el7 base 33 k
mailcap noarch 2.1.41-2.el7 base 31 k
mod_http2 x86_64 1.15.7-1.codeit CodeIT 208 k
openssl111-libs x86_64 1.1.1g-2.codeit.el7 CodeIT 1.4 M
sscg x86_64 2.6.1-1.el7 epel 60 k
Transaction Summary
=====================================================================================================================================================
Install 2 Packages (+12 Dependent packages)
# dnf install httpd mod_ssl
Last metadata expiration check: 0:04:04 ago on Mon 27 Apr 2020 15:30:34 UTC.
Dependencies resolved.
Problem: cannot install the best candidate for the job
— nothing provides /usr/bin/hostname needed by mod_ssl-1:2.4.43-6.codeit.el7.x86_64
=====================================================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================================================
Installing:
httpd x86_64 2.4.43-2.codeit.el7 CodeIT 1.4 M
mod_ssl x86_64 1:2.4.43-2.codeit.el7 CodeIT 1.3 M
Installing dependencies:
brotli x86_64 1.0.7-5.el7 epel 318 k
libnghttp2 x86_64 1.31.1-2.el7 epel 67 k
sscg x86_64 2.6.1-1.el7 epel 60 k
libpath_utils x86_64 0.2.1-32.el7 base 28 k
libtalloc x86_64 2.1.16-1.el7 base 33 k
mailcap noarch 2.1.41-2.el7 base 31 k
apr x86_64 1.7.0-2.el7 CodeIT 122 k
apr-util x86_64 1.6.1-6.el7 CodeIT 98 k
httpd-filesystem noarch 2.4.43-2.codeit.el7 CodeIT 27 k
httpd-tools x86_64 2.4.43-2.codeit.el7 CodeIT 1.3 M
mod_http2 x86_64 1.15.7-1.codeit CodeIT 208 k
Skipping packages with broken dependencies:
mod_ssl x86_64 1:2.4.43-6.codeit.el7 CodeIT 121 k
Transaction Summary
=====================================================================================================================================================
Install 13 Packages
Skip 1 Package
Thanks for your attention and apologies for taking your time!
Thank you for the confirmation Dan!
Hi Alexander, revisiting this
Please review https://bugzilla.redhat.com/show_bug.cgi?id=1645638 which kind of shows the same issue — unresolved dependencies with /usr/bin/hostname. The suggestion is that the rpm package is wrong.
A «dnf deplist » gives the dependency and provider.
For mod_ssl-1:2.4.43-6.codeit.el7.x86_64, this gives an unresolved dependency of /usr/bin/hostname
By contrast dnf deplist mod_ssl-1:2.4.43-2.codeit.el7.x86_64 shows no such dependency requirement which suggests why it works.
Apparently the correct approach is to remove the invalid dependency from the package. Either YUM or DNF will then operate correctly. It is not unreasonble to expect either system-provided package manager to work.
Per previous — could I ask you to look again at the package?
Thanks for your work
Kindest regards
Rob
Hello Rob,
Actually I think that problem is somewhere in the dnf database, as /usr/bin/hostname is registered as «provided» in the most recent «hostname» package. If I manually update it to the latest version, I do not see any problems with this dependency anymore.
Anyway, to support dnf and avoid cases with non-updated OS we released a fix for this case, please test with testing repository and reply if it worked for you.
https://repo.codeit.guru/packages/testing/x86_64/ — httpd-2.4.43-7
Hey Alexander, thanks for looking at that
TLDR: it worked cheers!
The OS is up to date cannot understand your notes above.
I looked at the link you gave, although a repodata folder’s in there I didn’t see any reference to a «testing» .repo available so I put my own, in order that either yum or, in this case, dnf could resolve all depedencies. Maybe I’m being thick and missed any published repo file.
[CodeITtest]
name=CodeIT test repo
baseurl=https://repo.codeit.guru/packages/testing/x86_64/
enabled=1
…
dnf update
=====================================================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================================================
Upgrading:
httpd x86_64 2.4.43-7.codeit.el7 CodeITtest 1.4 M
httpd-devel x86_64 2.4.43-7.codeit.el7 CodeITtest 213 k
httpd-filesystem noarch 2.4.43-7.codeit.el7 CodeITtest 29 k
httpd-tools x86_64 2.4.43-7.codeit.el7 CodeITtest 94 k
mod_ssl x86_64 1:2.4.43-7.codeit.el7 CodeITtest 122 k
Transaction Summary
=====================================================================================================================================================
Upgrade 5 Packages
Total download size: 1.8 M
Is this ok [y/N]: y
…
No complaints about dependencies, clean upgrade and all sorted
Thanks for your work!
Kindest regards
Rob
Hi Alexander,
I am working to fix a bug with httpd and mod_http2 (using your 2.4.43 from the centos 7 repo). I need to build an rpm with latest changes from https://github.com/icing/mod_h2 (from master) into a mod_http2.x86_64 1.15.9-x.codeit @CodeIT or similair
would be good that I use your script for that (to speed up the build) so I can do locally. Is that something you could share? Please could you reply personally?
This will help to fix mod_http2 — https://github.com/icing/mod_h2/issues/201
Hi Dmitry,
I would suggest to simply rebuild httpd using our SRPMs provided.
https://repo.codeit.guru/packages/centos/7/SRPMS/
You do not need any scripts: everything: patches and sources tarballs are already included in openssl111 and httpd SRPMs.
hmm, you have an interesting dependancy in the mod_http2-1.15.9-1.codeit.x86_64 on the build being performed under /root/ folder, so tests fail if this process is executed from the non-root user 🙂 but so far going ok
Alexander thank you!
I was able to update the issue with mod_http2 thanks to your prompt help.
This is great.
https://github.com/icing/mod_h2/issues/201
Hi, Alexander
So there is a new 1.15.12 version of mod_http2 that fixes among other things
header parsing which prevents 431 errors when cookies number approaches 100 on Firefox and Chrome 🙂
looking forward to see that in your repos 🙂
Hi Dmitry,
Thank you for your contribution, we will release the update asap.
Will move this discussion to httpd-2.4.43 post.
Hello,
First of all, thanks for the great work.
With your packages (Apache 2.4.43 as well as Apache 2.4.41), I have not able to override umask, which is mandaroty for my use. I tried different solution without effect.
Is it related to a specific compiling option you are using?
Many thanks in advance
Hello,
No, we do not use any specific compiling options. You can check them in our SRC RPMs provided.
Hello, if I don’t set MaxConnectionsPerChild 0 or leave it as default httpd becomes unresponsive even if not high CPU or RAM usage, and after a while AH03490: scoreboard is full, not at MaxRequestWorkers.Increase ServerLimit. on error log. So, it could be caused by your additional modules or also modpagespeed from Google. Hard to say what, unless you let me know how to inspect what prevent httpd from correctly recycling children. Thanks
Hi,
about two weeks ago I replaced the CentOS httpd version with the 2.4.43 on one server that uses WebDAV. Replacement worked well as usual but now I have problems with the WebDAV connections.
Reading directory contents works but if I try to create a new file/folder I get this message in error_log:
[dav_fs:crit] [pid 8728:tid 139838229575424] (20019)DSO load failed: AH00576: The DBM driver could not be loaded
After some seaches on different sites I really don’t understand what could be the cause for that problem. I only could see that all mentioned packages and modules come with the CodeIT version so everything should be fine.
Just saw that there ist the new version 2.4.46, but after an update I still get this messages.
So has anybody an idea of what the problem could be?
Thank you very much!
Hi Link on recent here is not found!
https://codeit.guru/en_US/2020/08/apache-httpd-2-4-46-tls-1-3-brotli-alpn-http2-openssl-1-1-1g-red-hat-centos-rhel-7-mod_http2/
Regards
Thanks, fixed.