Skip to content

Instantly share code, notes, and snippets.

@suiramus
Created February 21, 2025 13:45
Show Gist options
  • Save suiramus/070862f0d4ee7888b467a290b935103d to your computer and use it in GitHub Desktop.
Save suiramus/070862f0d4ee7888b467a290b935103d to your computer and use it in GitHub Desktop.
Creeaza certificate ssl in acelasi director si instructiuni pentru vhost si host. De verificat.
@echo off
setlocal enableDelayedExpansion
:: Setează variabilele
set DOMAIN=mrk.local
set WWW_DOMAIN=www.%DOMAIN%
set COMPANY_NAME=My Company
set COUNTRY=RO
set STATE=Some-State
set LOCALITY=Some-City
set ORGANIZATION=%COMPANY_NAME%
set ORGANIZATIONAL_UNIT=IT
set EMAIL=admin@%DOMAIN%
:: Calea către XAMPP
set XAMPP_DIR=C:\xampp
set OPENSSL_PATH=%XAMPP_DIR%\apache\bin\openssl.exe
:: Directorul pentru site
set BASE_DIR=%~dp0%DOMAIN%
mkdir %BASE_DIR%
:: Directorul pentru certificate
set OUTPUT_DIR=%BASE_DIR%\ssl-certificates
mkdir %OUTPUT_DIR%
:: Creare fișier temporar pentru extensii
set EXT_FILE=%~dp0san.ext
echo [ req ] > %EXT_FILE%
echo default_bits = 2048 >> %EXT_FILE%
echo prompt = no >> %EXT_FILE%
echo default_md = sha256 >> %EXT_FILE%
echo distinguished_name = req_distinguished_name >> %EXT_FILE%
echo x509_extensions = v3_req >> %EXT_FILE%
echo [ req_distinguished_name ] >> %EXT_FILE%
echo C = %COUNTRY% >> %EXT_FILE%
echo ST = %STATE% >> %EXT_FILE%
echo L = %LOCALITY% >> %EXT_FILE%
echo O = %ORGANIZATION% >> %EXT_FILE%
echo OU = %ORGANIZATIONAL_UNIT% >> %EXT_FILE%
echo CN = %DOMAIN% >> %EXT_FILE%
echo emailAddress = %EMAIL% >> %EXT_FILE%
echo [ v3_req ] >> %EXT_FILE%
echo subjectAltName = @alt_names >> %EXT_FILE%
echo [ alt_names ] >> %EXT_FILE%
echo DNS.1 = %DOMAIN% >> %EXT_FILE%
echo DNS.2 = %WWW_DOMAIN% >> %EXT_FILE%
:: Generare certificat SSL auto-semnat pentru toate variantele
%OPENSSL_PATH% req -x509 -nodes -days 365 -newkey rsa:2048 -keyout %OUTPUT_DIR%\%DOMAIN%.key -out %OUTPUT_DIR%\%DOMAIN%.crt -subj "/C=%COUNTRY%/ST=%STATE%/L=%LOCALITY%/O=%ORGANIZATION%/OU=%ORGANIZATIONAL_UNIT%/CN=%DOMAIN%/emailAddress=%EMAIL%" -config %EXT_FILE% 2>> "%~dp0openssl_error.log"
:: Creare fișier de instrucțiuni
set INSTRUCTIONS_FILE=%BASE_DIR%\%DOMAIN%-instructions.conf
(
echo ########################################################
echo # Instrucțiuni pentru configurarea VirtualHost
echo ########################################################
echo.
echo -------------------------
echo # 1. Adaugă în httpd-vhosts.conf
echo -------------------------
echo.
echo ^<VirtualHost *:80^>
echo ServerName %DOMAIN%
echo ServerAlias %WWW_DOMAIN% %MAIL_SUBDOMAIN% %WWW_MAIL_SUBDOMAIN%
echo DocumentRoot "%BASE_DIR%"
echo ^</VirtualHost^>
echo.
echo ^<VirtualHost *:443^>
echo ServerName %DOMAIN%
echo ServerAlias %WWW_DOMAIN% %MAIL_SUBDOMAIN% %WWW_MAIL_SUBDOMAIN%
echo DocumentRoot "%BASE_DIR%"
echo SSLEngine on
echo SSLCertificateFile "%OUTPUT_DIR%\%DOMAIN%.crt"
echo SSLCertificateKeyFile "%OUTPUT_DIR%\%DOMAIN%.key"
echo ^</VirtualHost^>
echo.
echo -------------------------
echo # 2. Adaugă în C:\Windows\System32\drivers\etc\hosts
echo -------------------------
echo.
echo 127.0.0.1 %DOMAIN%
echo 127.0.0.1 %WWW_DOMAIN%
echo.
echo -------------------------
echo # 3. Restart Apache după modificări
echo -------------------------
echo.
echo Deschide XAMPP Control Panel și apasă "Stop" apoi "Start" pe Apache.
echo SAU rulează comanda:
echo %XAMPP_DIR%\apache\bin\httpd.exe -k restart
) > %INSTRUCTIONS_FILE%
:: Șterge fișierul temporar de extensii
del %EXT_FILE%
:: Confirmare
echo Configurația a fost generată cu succes.
echo Verifică fișierul: %INSTRUCTIONS_FILE%
pause
endlocal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment