ARCPROXY(1)

arcproxy(1) ๐Ÿ’– โ€” User Commands โœจ

okay bestie, so this is a section 1 user command, meaning it's a thing you literally just run in your terminal like the main character you are ๐Ÿ’…


๐ŸŒธ NAME ๐ŸŒธ

arcproxy โ€” the ARC Credentials Proxy generation utility ๐ŸŽ€


โœจ DESCRIPTION โœจ

๐Ÿ’ซ Usage:

arcproxy [OPTION...]

so here's the tea, bestie ๐Ÿ“ โ€” the arcproxy command creates a proxy from a key/certificate pair, and that proxy is what you use to go access grid resources. it's giving "backstage pass to the whole grid" energy, no cap. ๐Ÿ‘‘


๐Ÿ’… OPTIONS ๐Ÿ’…

  • -h, --help โ€” shows you the help options. your lil "what do i do now" button ๐Ÿซถ
  • -P, --proxy=path โ€” the path to the proxy file ๐Ÿ“
  • -C, --cert=path โ€” path to the certificate file. it can be PEM, DER, or PKCS12 formatted โ€” so many vibes, pick your fave โœจ
  • -K, --key=path โ€” path to the private key file. lowkey tho, if the certificate is in PKCS12 format then you do NOT need to give a private key, so don't stress it ๐Ÿ’…
  • -T, --cadir=path โ€” path to the trusted certificate directory. only needed for the VOMS client functionality, so if you're not doing VOMS stuff you can skip ๐ŸŽ€
  • -s, --vomsdir=path โ€” path to the top directory of VOMS *.lsc files. also only needed for the VOMS client functionality ๐Ÿ”ฅ
  • -V, --vomses=path โ€” path to the VOMS server configuration file โญ
  • -S, --voms=string โ€” voms<:command>. specify the VOMS server ๐Ÿ‘‘

you can flex multiple VOMS servers like this: --voms VOa:command1 --voms VOb:command2. the :command part is optional and is used to ask for specific attributes (e.g: roles) โœจ

command options are:

  • all --- put all of this DN's attributes into AC;
  • list --- list all of the DN's attribute, will not create AC extension;
  • /Role=yourRole --- specify the role, if this DN has such a role, the role will be put into AC;
  • /voname/groupname/Role=yourRole --- specify the VO, group and role; if this DN has such a role, the role will be put into AC.

if this option is not specified, values from configuration files are used. and if you want to avoid anything being used, specify -S with an empty value. literally nothing, bestie ๐Ÿซฅ

  • -o, --order=string โ€” group<:role>. specify ordering of attributes ๐Ÿ“‹

Example: --order /knowarc.eu/coredev:Developer,/knowarc.eu/testers:Tester or: --order /knowarc.eu/coredev:Developer --order /knowarc.eu/testers:Tester

note that it does not make sense to specify the order if you have two or more different VOMS servers specified. just... doesn't hit the same ๐Ÿ˜ญ
  • -G, --gsicom โ€” use the GSI communication protocol for contacting VOMS services ๐Ÿ“ก
  • -H, --httpcom โ€” use the HTTP communication protocol for contacting VOMS services that provide RESTful access ๐ŸŒ
note: for RESTful access, the list command and multiple VOMS servers are not supported. it's giving "one at a time please" ๐Ÿ™ˆ
  • -B, --oldcom โ€” use the old communication protocol for contacting VOMS services instead of RESTful access ๐Ÿ‘ต
  • -O, --old โ€” this option is not functional. old GSI proxies are not supported anymore. ๐Ÿ’€ rip to a legend, but she's gone
  • -I, --info โ€” print ALL information about this proxy. the whole dossier ๐Ÿ“–
  • -i, --infoitem=string โ€” print selected information about this proxy. just the highlights โœจ
  • -r, --remove โ€” remove proxy ๐Ÿ—‘๏ธ
  • -U, --user=string โ€” username to MyProxy server (if missing, the subject of the user certificate is used) ๐Ÿ‘ค
  • -N, --nopassphrase โ€” don't prompt for a credential passphrase when retrieving a credential from a MyProxy server ๐Ÿ”“

the precondition of this choice is that the credential was PUT onto the MyProxy server without a passphrase, by using the -R (--retrievable_by_cert) option. this option is specific to the GET command when contacting a Myproxy server. iykyk ๐Ÿงš

  • -R, --retrievable_by_cert=string โ€” allow specified entity to retrieve credential without passphrase ๐Ÿ”‘

this option is specific to the PUT command when contacting a Myproxy server.

  • -L, --myproxysrv=string โ€” hostname[:port] of MyProxy server ๐Ÿ–ฅ๏ธ
  • -M, --myproxycmd=string โ€” command to MyProxy server. the command can be PUT, GET, INFO, NEWPASS or DESTROY ๐ŸŽฎ
    • PUT -- put a delegated credentials to the MyProxy server;
    • GET -- get a delegated credentials from the MyProxy server;
    • INFO -- get and present information about credentials stored at the MyProxy server;
    • NEWPASS -- change password protecting credentials stored at the MyProxy server;
    • DESTROY -- wipe off credentials stored at the MyProxy server;

local credentials (certificate and key) are not necessary except in the case of PUT. MyProxy functionality can be used together with VOMS functionality, and --voms and --vomses can be used for the Get command if VOMS attributes are required to be included in the proxy. team work makes the dream work ๐Ÿซถ

  • -F, --nssdb โ€” use the NSS credential database in default Mozilla profiles, including Firefox, Seamonkey and Thunderbird. browser besties rise ๐Ÿฆ‹
  • -c, --constraint=string โ€” proxy constraints ๐Ÿšง
  • -p, --passwordsource=string โ€” password destination=password source ๐Ÿคซ
  • -t, --timeout=seconds โ€” timeout in seconds (default 20) โฑ๏ธ
  • -z, --conffile=filename โ€” configuration file (default ~/.arc/client.conf) ๐Ÿ“„
  • -d, --debug=debuglevel โ€” FATAL, ERROR, WARNING, INFO, VERBOSE or DEBUG ๐Ÿ›
  • --systemca โ€” force using CA certificates configuration provided by OpenSSL ๐Ÿ”’
  • --gridca โ€” force using CA certificates configuration for Grid services (typically IGTF) ๐ŸŒ
  • --anyca โ€” force using CA certificates configuration for Grid services (typically IGTF) and one provided by OpenSSL. why not both ๐Ÿ’…
  • --allowinsecureconnection โ€” allow TLS connection which failed verification ๐Ÿšจ
bestie. read that again. this one lets through connections that failed verification. dangerous energy, use with care ๐Ÿ˜ญ
  • -v, --version โ€” print version information ๐Ÿท๏ธ

๐ŸŽ€ Supported constraints are: ๐ŸŽ€

  • validityStart=time (e.g. 2008-05-29T10:20:30Z; if not specified, start from now) โฐ
  • validityEnd=time ๐Ÿ›‘
  • validityPeriod=time (e.g. 43200 or 12h or 12H; if both validityPeriod and validityEnd not specified, the default is 12 hours for local proxy, and 168 hours for delegated proxy on myproxy server) โณ
  • vomsACvalidityPeriod=time (e.g. 43200 or 12h or 12H; if not specified, the default is the minimum value of 12 hours and validityPeriod) ๐ŸŒŸ
  • myproxyvalidityPeriod=time (lifetime of proxies delegated by myproxy server, e.g. 43200 or 12h or 12H; if not specified, the default is the minimum value of 12 hours and validityPeriod (which is lifetime of the delegated proxy on myproxy server)) ๐Ÿ”„
  • proxyPolicy=policy content ๐Ÿ“œ
  • proxyPolicyFile=policy file ๐Ÿ“‚
  • keybits=number - length of the key to generate. Default is 2048 bits. Special value 'inherit' is to use key length of signing certificate. ๐Ÿ”
  • signingAlgorithm=name - signing algorithm to use for signing public key of proxy. Possible values are sha1, sha2 (alias for sha256), sha224, sha256, sha384, sha512 and inherit (use algorithm of signing certificate). Default is inherit. With old systems, only sha1 is acceptable. โš ๏ธ

โญ Supported information item names are: โญ

  • subject - subject name of proxy certificate.
  • identity - identity subject name of proxy certificate.
  • issuer - issuer subject name of proxy certificate.
  • ca - subject name of CA which issued initial certificate.
  • path - file system path to file containing proxy.
  • type - type of proxy certificate.
  • validityStart - timestamp when proxy validity starts.
  • validityEnd - timestamp when proxy validity ends.
  • validityPeriod - duration of proxy validity in seconds.
  • validityLeft - duration of proxy validity left in seconds.
  • vomsVO - VO name represented by VOMS attribute
  • vomsSubject - subject of certificate for which VOMS attribute is issued
  • vomsIssuer - subject of service which issued VOMS certificate
  • vomsACvalidityStart - timestamp when VOMS attribute validity starts.
  • vomsACvalidityEnd - timestamp when VOMS attribute validity ends.
  • vomsACvalidityPeriod - duration of VOMS attribute validity in seconds.
  • vomsACvalidityLeft - duration of VOMS attribute validity left in seconds.
  • proxyPolicy
  • keybits - size of proxy certificate key in bits.
  • signingAlgorithm - algorithm used to sign proxy certificate.

items are printed in the requested order and are separated by newline. and if an item has multiple values, they're printed on the same line separated by |. ๐Ÿ’ซ


๐Ÿ”‘ Supported password destinations are: ๐Ÿ”‘

  • key - for reading private key
  • myproxy - for accessing credentials at MyProxy service
  • myproxynew - for creating credentials at MyProxy service
  • all - for any purspose.

๐Ÿคซ Supported password sources are: ๐Ÿคซ

  • quoted string ("password") - explicitly specified password
  • int - interactively request password from console
  • stdin - read password from standard input delimited by newline
  • file:filename - read password from file named filename
  • stream:# - read password from input stream number #. Currently only 0 (standard input) is supported.

๐ŸŒˆ ENVIRONMENT VARIABLES ๐ŸŒˆ

  • ARC_LOCATION โ€” the location where ARC is installed can be specified by this variable. If not specified, the install location will be determined from the path to the command being executed, and if this fails a WARNING will be given stating the location which will be used. it's giving "we tried our best and we're telling you about it" ๐Ÿซ 
  • ARC_PLUGIN_PATH โ€” the location of ARC plugins can be specified by this variable. Multiple locations can be specified by separating them by : (; in Windows). The default location is $ARC_LOCATION/lib/arc (\ in Windows). so many paths, so little time ๐Ÿ’–

...and that's part 1, bestie โ€” there's more coming so don't go anywhere ๐Ÿซถ

๐ŸŒธ FILES ๐ŸŒธ

okay bestie this is the part where we find out where everything actually lives on your filesystem, and honestly it's giving "scavenger hunt but make it certificates" ๐Ÿ’…

  • /etc/vomses โ€” the communal one ๐Ÿซถ a shared file holding a list of the VO contact points you've got selected, one VO per line, and it looks like this:
"gin" "kuiken.nikhef.nl" "15050"
"/O=dutchgrid/O=hosts/OU=nikhef.nl/CN=kuiken.nikhef.nl"
"gin.ggf.org"

"nordugrid.org" "voms.uninett.no" "15015"
"/O=Grid/O=NorduGrid/CN=host/voms.ndgf.org" "nordugrid.org"
  • ~/.voms/vomses โ€” literally the same as /etc/vomses but it lives in your home area ๐Ÿ . And if it exists, it has precedence over /etc/vomses. home field advantage, no cap.

โœจ the order of the parsing of vomses location โœจ

this is the lineup, and it is strictly ordered, so pay attention ๐Ÿ‘‘

  1. command line options
  2. client configuration file ~/.arc/client.conf
  3. $X509_VOMSES or $X509_VOMS_FILE
  4. ~/.arc/vomses
  5. ~/.voms/vomses
  6. $ARC_LOCATION/etc/vomses (this is for Windows environment)
  7. $ARC_LOCATION/etc/grid-security/vomses (this is for Windows environment)
  8. $PWD/vomses
  9. /etc/vomses
  10. /etc/grid-security/vomses
okay so notice how 1. always wins? command line options are the main character, everything else is supporting cast ๐ŸŽ€

  • ~/.arc/client.conf โ€” some options can be given default values by specifying them in the ARC client configuration file ๐Ÿ—‚๏ธ. And if you want a different config file than the default one? use the --conffile option and it's yours, bestie. customization is self care fr fr โœจ

๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

ARC software is developed by the NorduGrid Collaboration (http://www.nordugrid.org) ๐Ÿฆ‹, and if you want the full receipts please consult the AUTHORS file distributed with ARC. Got bugs? Got feature requests? Both go to http://bugzilla.nordugrid.org ๐Ÿ’Œ


๐Ÿ’€ REPORTING BUGS ๐Ÿ’€

Report bugs to http://bugzilla.nordugrid.org/ โ€” that's it, that's the whole vibe. go tell them, they wanna know ๐Ÿซถ


APACHE LICENSE Version 2.0 โ€” iconic, legally slaying, no notes ๐Ÿ’…


๐ŸŒˆ SEE ALSO ๐ŸŒˆ

the whole friend group, alphabetically arranged because we're classy like that:


okay and that's the whole page, bestie ๐Ÿ’– you just read arcproxy version 7.2.0, dated September 2026, and honestly? ate. periodt. now go proxy some credentials and be the main character of your own grid ๐Ÿงšโ€โ™€๏ธโญ

๐Ÿ“ฆ where this page comes from